恶意知乎:一个QQ公司的C面试题,大家帮我看看

来源:百度文库 编辑:高考问答 时间:2024/05/13 09:30:38
char * name = "this is";
char name1[] = "this is";
int a = sizeof(name);
a1 = sizeof(name1);
请问 a和a1各是多少? 一样吗?

不一样。a=4,a1=8
因为name是一个指针,用sizeof取大小时返回的是指针变量在内存在占的空间,一个指针在内存中需要4个字节。
而name1是一个数组,它的长度为8
this is是一个字符串,长度为7,加上结尾符\0,所以长度为8。