关于字符串长度

int main()
{
	char s[] = "china";
	char *p = s;
	printf("%d", sizeof(s));
	printf("%d", strlen(p));
	getchar();
	return 0;
}

结果是6和5

计算数组的长度sizeof();

计算指针指向的字符串的长度 strlen();

s是数组名,是一地址常量,对 s不能进行运算,而 p是指针变量,可进行

赋值等运算,所以答案A是错误的:数组s中的内容是一字符串,而指针变量p中的内容

是地址,两者不可能相等,故答案B是错误的:数组s的大小为6(包含’\0’),而p所指向

的字符串长度是5(不包含’\0’),所以C也是错误的。p指向数组s的第一个元素,所以*p

s[0]的值都为字符 ’c’

猜你喜欢

转载自blog.csdn.net/fanx021/article/details/80601650