C 什么';(int)sizeof(void*)和int之间的区别是什么?

C 什么';(int)sizeof(void*)和int之间的区别是什么?,c,int,sizeof,void,C,Int,Sizeof,Void,我只是C编程的初学者。 我能问一个简单的问题吗? (int)sizeof(void*)和int之间有什么区别 ex) 一个是类型,另一个是返回类型大小的表达式。一个是类型,另一个是返回类型大小的表达式。第一种情况用作int的别名,因此可以使用ptrint而不是int 第二种情况是指针的大小(以字节为单位)。例如,在32位系统上,它将返回4 ptrint a = 8; ptrint b = a; int sizeofptr = PTRINT; 第一种情况充当int的别名,因此可以使用ptrin

我只是C编程的初学者。 我能问一个简单的问题吗?
(int)sizeof(void*)
int
之间有什么区别

ex)


一个是类型,另一个是返回类型大小的表达式。

一个是类型,另一个是返回类型大小的表达式。

第一种情况用作int的别名,因此可以使用ptrint而不是int

第二种情况是指针的大小(以字节为单位)。例如,在32位系统上,它将返回4

ptrint a = 8;
ptrint b = a;

int sizeofptr = PTRINT;

第一种情况充当int的别名,因此可以使用ptrint而不是int

第二种情况是指针的大小(以字节为单位)。例如,在32位系统上,它将返回4

ptrint a = 8;
ptrint b = a;

int sizeofptr = PTRINT;

((int)sizeof(void*)是一个值(取决于您的系统和编译器实现),int是一个类型。

((int)sizeof(void*)是一个值(取决于您的系统和编译器实现),int是一个类型。

使用ptrint,您只需定义一个新类型,它只是int的别名,例如:

ptrint a;
a = 5;
printf("%d",(int) a); // all this is ok.
使用PTRINT,您可以定义一个整数常量,该常量将包含系统上void*指针的大小。例如:

printf("Size of a void* pointer is %d\n",PTRINT); // will work. 
PTRINT a;  // will fail

使用ptrint,您只需定义一个新类型,它只是int的别名,例如:

ptrint a;
a = 5;
printf("%d",(int) a); // all this is ok.
使用PTRINT,您可以定义一个整数常量,该常量将包含系统上void*指针的大小。例如:

printf("Size of a void* pointer is %d\n",PTRINT); // will work. 
PTRINT a;  // will fail

谢谢你的回答。我能再问一个问题吗?(void*)的大小是多少?@user573566指针的大小可能因平台而异。在32位平台上通常为4字节(32位),在64位平台上通常为8字节(64位)。谢谢您的回答。我能再问一个问题吗?(void*)的大小是多少?@user573566指针的大小可能因平台而异。在32位平台上,它通常是4个字节(32位),而在64位平台上,它通常是8个字节(64位)。谢谢您的回答。:)谢谢你的回答。:)谢谢你的回答。:)谢谢你的回答。:)谢谢你的回答。:)谢谢你的回答。:)