Tag: void pointers

C编程中void指针的概念

在C编程语言中没有使用types转换的情况下是否可以解引用void指针? 另外,是否有任何方法来推广一个函数,它可以接收一个指针并将其存储在一个void指针中,并且通过使用void pointe,我们可以创build一个广义函数吗? 例如: void abc(void *a, int b) { if(b==1) printf("%d",*(int*)a); // If integer pointer is received else if(b==2) printf("%c",*(char*)a); // If character pointer is received else if(b==3) printf("%f",*(float*)a); // If float pointer is received } 我想使这个函数通用,而不使用if-else语句 – 这是可能的吗? 另外,如果有很好的互联网文章来解释一个空指针的概念,那么如果你能提供这个URL,这将是有益的。 此外,指针算术与空指针可能吗?

通过void *投射,而不是使用reinterpret_cast

我正在读一本书,我发现不应该直接使用reinterpret_cast ,而是将其与static_cast结合使用void * T1 * p1=… void *pv=p1; T2 * p2= static_cast<T2*>(pv); 代替: T1 * p1=… T2 * p2= reinterpret_cast<T2*>(p1); 但是,我无法find一个解释为什么这比直接演员更好。 如果有人能给我一个解释或指出我的答案,我将非常感激。 提前致谢 ps我知道什么reinterpret_cast用于,但我从来没有看到这是用这种方式

什么是空指针,什么是空指针?

所以我遇到了一些面试问题,我遇到了这个问题 这个问题的答案彻底让我困惑! 根据这个问题,似乎无效和空可以交替使用,我不相信这是正确的。 我认为无效是一个返回types,空值是一个值。 但是我只是一个代码新手,我不知道我是否正确。 因此,所有的专家在那里..如果你可以摆脱一些光,这将是非常有益的! 🙂 请expression您的意见,什么是空指针和空指针是什么。 不寻找无效之间的区别。 也请validation问题的答案,并告诉我,如果这是正确的…谢谢

Objective-C:id和void之间的区别*

id和void *什么区别?