有以下程序main(){ char a[7]="a0\0a0\0"; int i,j; i=sizeof(a); j=strlen(a); printf("%d %d\n",i,j);}程序运行后的输出结果是。A.2 2 B.7 6 C.7 2 D.6 2
- A2 2
- B7 6
- C7 2
- D6 2
有以下程序main(){ char a[7]="a0\0a0\0"; int i,j; i=sizeof(a); j=strlen(a); printf("%d %d\n",i,j);}程序运行后的输出结果是。A.2 2 B.7 6 C.7 2 D.6 2
题目中需要求出程序的输出值i,j,其中i的值由sizeof决定,j的值由strlen函数决定。sizeof是C语言的一种运算符,以字节的形式给出操作数的存储空间的大小。sizeof的操作对象可以是具体的数据类型,也可以是变量。题目中的操作数为数组名,利用sizeof可计算出数组所占用内存的字节数,题目中数组类型为char,大小为7,故该数组占用的内存数为7。strlen函数则是计算一段字符串的长度,可以从整个字符串的头部开始计算,也可以从字符串的中间开始计算,当碰到第一个字符串结束符“\0”,则停止计算,返回当前的计算值。题目中在前两个字符之后就出现了结束符“\0”,故strlen函数的值为2。