一道C语言数组的问题,求详解。

2025-03-07 11:08:50
推荐回答(2个)
回答1:

选b.strlen是测量长度的函数,遇到\o停止。此题中有a,b,c,d,\n,0,1,2,\1,\\共十个数,所以选b。PS:strlen(char *)
作用:检测字符串实际长度。
如:char s[]="1234567";
int a=strlen(s);//a=7
实际上strlen(char *)检测的是'\0',strlen(char *)碰到'\0'就返回'\0'以前的字符数。

又如:
char f[]="123456\01111";
int b=strlen(f);//b=6,因为遇到了'\0'

char h[4]={'f','0',0,'h'} ;//注:不能写成char h[4]="f0\0h";因为以""括起来的为字符串,
它隐式的以'\0'结尾,而'\0'也占一个字节,所以应写为char h[5]="f0\0h"
int c=strlen(h);//c=2,因为遇到了'\0'(注意'0'不等于'\0',而0等于'\0')

回答2:

选B
A B C D \n o 1 2 \1 \\