![](/img/trans.png)
[英]What is the difference between malloc(sizeof(int)) and malloc(sizeof(int*))
[英]What's the difference between (int) sizeof(void *) and int?
我只是C編程的初學者。 我可以問一個簡單的問題嗎? (int) sizeof(void *)
和int
什么區別?
例如)
#define ptrint int
#define PTRINT ((int) sizeof(void *))
第一種情況用作int的別名,因此您可以使用ptrint代替int。
第二種情況是指針的大小(以字節為單位)。 因此,例如在32位系統上,它將返回4。
ptrint a = 8;
ptrint b = a;
int sizeofptr = PTRINT;
一個是類型,另一個是返回類型大小的表達式。
使用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
((int)sizeof(void *))是一個值(取決於您的系統和編譯器實現),int是一種類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.