如题所述
第1个回答 2020-02-08
'e'是一个常量字符,对于常量字符,C默认是将其当作int类型类存放和处理,所以结果是4,相当于sizeof(int)
sizeof("a");
a是个字符串,其空间是可见字符数+1,多的这个是\0占的位置
sizeof("a");
a是个字符串,其空间是可见字符数+1,多的这个是\0占的位置
第2个回答 2020-03-14
sizeof(a)
说的是结构体的大小2+1+2=5
sizeof(b)是指针b的大小,它在不同位的机器上占的字节数不同,在你的机器上可能是2了
指针不因为类型的不同而使占的自己数变化
它就是一个整型占的字节数
char*p;
int*q;
printf("%d\n",sizeof(p));
printf("%d\n",sizeof(q));
结果都是2,不信自己试试
说的是结构体的大小2+1+2=5
sizeof(b)是指针b的大小,它在不同位的机器上占的字节数不同,在你的机器上可能是2了
指针不因为类型的不同而使占的自己数变化
它就是一个整型占的字节数
char*p;
int*q;
printf("%d\n",sizeof(p));
printf("%d\n",sizeof(q));
结果都是2,不信自己试试
第3个回答 2019-06-23
C语言的字符常量是
int
类型而不是
char
类型的。这在实际编程中大概没什么影响(毕竟
int
值可以隐式转换为
char
类型的值),能看出差别的恐怕只有
sizeof
了……
注意在这里C++跟C的规定不一样。C++中字符常量就是
char
类型的
int
类型而不是
char
类型的。这在实际编程中大概没什么影响(毕竟
int
值可以隐式转换为
char
类型的值),能看出差别的恐怕只有
sizeof
了……
注意在这里C++跟C的规定不一样。C++中字符常量就是
char
类型的