我想知道指针是否指向数组或单个整数。我有一个函数需要两个指针( 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/