一、求下列两个数组的长度关系
/* 求下列两个数组的长度关系 */
char acX[] = "abcdefg";
char acY[] ={ 'a', 'b','c', 'd', 'e', 'f', 'g' };
解析:对于字符串来说,字符串结尾默认为‘\0’,所以acX[]的长度为8,而第二个数组的大小长度为7,而且因为没有用‘\0’结尾,所以在屏幕上输出的值是不确定的.
二、求下列程序的输出结果
/* 求下列两个数组的长度关系 */
#include <stdio.h>
void example(characHello[])
{
printf("%d\n", sizeof(acHello));
return;
}
int main(void)
{
char acHello[] = "hello,bit";
example(acHello);
system("pause");
return 0;
}
解析:函数传参时有两种方式,一种是值传递,一种是址传递对于数组来说传递的是首元素的地址。Sizeof(类型)是求内存大小的函数,比如sizeof(int)=4,sizeof(char)=1;.
一个指针变量占有4个字节sizeof(*p)=4 (32位系统)。