我想知道指针是否指向数组或单个整数。我有一个函数需要两个指针( int char )作为输入,并判断一个指针是指向数组还是单个整数

pointer=pointer+4;
pointer1=pointer1+4;

这是一个好主意吗?

最佳答案

就像其他人在这里所说的那样,C不知道指针指向什么。但是,如果您选择沿着这条路径走,则可以将前哨值放在整数或数组的第一个位置以指示它是什么...

#define ARRAY_SENTINEL -1

int x = 0;
int x_array[3] = {ARRAY_SENTINEL, 7, 11};

pointer = &x_array[0];

if (*pointer == ARRAY_SENTINEL)
{
   // do some crazy stuff
}

pointer = &x;

if (*pointer != ARRAY_SENTINEL)
{
   // do some more crazy stuff
}

关于c++ - 如何检查指针是否指向数组或单个int或char,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36432076/

10-13 09:19