求sizeof(p) char *p=”hello!”; char p[]=”hello!”; void *p=malloc(100); 求解 急啊 考试呢。。。。

谢谢各位了。。。。
2025-02-24 04:03:30
推荐回答(5个)
回答1:

1、char *p="hello!";
那么sizeof(p) =4。因为p是指针。指针一般在32位系统占用4字节。
2、 char p[]="hello!";
那么sizeof(p) =7。因为p是字符数组。是连续的空间包含字符结束符'\0'共7个字节。
3、void *p=malloc(100);
那么sizeof(p) =4。因为p是指针。指针一般在32位系统占用4字节。

回答2:

char *p=”hello!”;
void *p=malloc(100);
的话,结果一样,sizeof(p) 都是4(VC6下的话,TC的话是2)

char p[]=”hello!”;
的话,结果一样,sizeof(p)是7

回答3:

第一和第三个,p是指针,所以大小肯定是4
第二个p是数组,hello!加上前面的空格一共是7个字节,再加上隐藏的字符串结束符,一共8个字节。所以大小是8

回答4:

char *p=”hello!”; //sizeof(p) =4
char p[]=”hello!”; //sizeof(p) =7
void *p=malloc(100);// sizeof(p) =4

程序实际确认结果,肯定对
#include
#include
int main(){
//char *p="hello!";
//char p[]="hello!";
void *p=malloc(100);
printf("%d",sizeof(p));
}

回答5:

第一个答案是4,指针固定大小为4
第二个为7,静态数组的大小
第三个sizeof操作符不能返回动态开辟的数组或形参数组的大小。