相关疑难解决方法(0)

是否有任何平台指向不同类型的指针有不同的大小?

C标准允许指向不同类型的指针具有不同的大小,例如sizeof(char*) != sizeof(int*)是允许的.但是,它确实要求如果指针转换为a void*然后转换回其原始类型,则必须将其与原始值进行比较.因此,从逻辑上讲,sizeof(void*) >= sizeof(T*)对于所有类型T,正确吗?

在当今使用的大多数常见平台上(x86,PPC,ARM和64位变体等),所有指针的大小都等于本机寄存器大小(4或8字节),而不管指向的类型.是否存在任何深奥或嵌入式平台,其中指向不同类型的指针可能具有不同的大小?我特别询问数据指针,虽然我也有兴趣知道是否存在函数指针具有异常大小的平台.

我绝对不会问C++的指向成员的指针和指向成员的指针函数.这些在常见平台上具有不寻常的大小,甚至可以在一个平台内变化,具体取决于指针类的属性(非多态,单继承,多继承,虚继承或不完整类型).

c pointers sizeof

57
推荐指数
7
解决办法
4909
查看次数

C 中指针的大小

如何找到“指针”类型的大小?例如,如果我想知道整数的大小,我可以使用“sizeof(int)”。指针相当于什么?是否可以在不初始化指针的情况下执行此操作?

c pointers sizeof

0
推荐指数
1
解决办法
676
查看次数

标签 统计

c ×2

pointers ×2

sizeof ×2