wustguangh |分类标签:C/C++ 2015-01-17

C语言的sizeof用于char*的返回值问题

char A[10];
int len = sizeof(A);
int len1 = sizeof(char*);
如上程序所示,为啥len的结果是10,而不是sizeof(char *)的值4?

满意答案

wustguangh 19级 2015-01-17 12:30:12

如果char*对应是一个char数组,则返回数组的字节长度,否则返回的就是char*指针的长度(4)。

如下程序所示,i的返回值是4.

char *a; int i;
i = sizeof(a);


其他回答(1)

wustguangh 19级 2015-01-17 12:28:20

char *是个指针类型,大小就是4字节~
sizeof(数组名)一般不等于sizeof(该数组类型的指针),除非数组有4个元素.

相关知识

相关文章更多