题目
已知char p[ ]= ( ' a ' , ' b ' , ' c ' ) , q [ 10 ] = ( ' a ' , ' b ' , ' c ' ) ; 则strlen(p)和strlen(q)的结果相同。 A 正确 B 错误
已知char p[ ]= { ' a ' , ' b ' , ' c ' } , q [ 10 ] = { ' a ' , ' b ' , ' c ' } ; 则strlen(p)和strlen(q)的结果相同。
A 正确
B 错误
题目解答
答案
strlen() 是一个字符串长度计算函数,用于计算一个以 null 字符('\0')结尾的字符串的长度,不包括 null 字符本身。
在代码中,p 是一个字符数组,没有以 null 字符结尾。因此,strlen(p) 的结果是不确定的,可能会导致异常行为。
而 q 是一个大小为 10 的字符数组,虽然只存储了 3 个字符,但是后面的 7 个位置被默认初始化为 null 字符('\0')。所以,q 实际上是一个包含以 null 字符结尾的字符串。因此,strlen(q) 的结果是 3,即字符数组中实际存储的字符的个数。
故本题选B。
解析
步骤 1:理解strlen()函数
strlen()函数用于计算以null字符('\0')结尾的字符串的长度,不包括null字符本身。
步骤 2:分析数组p
数组p定义为char p[ ]= { ' a ' , ' b ' , ' c ' },没有以null字符结尾。因此,strlen(p)的结果是不确定的,可能会导致异常行为。
步骤 3:分析数组q
数组q定义为char q[10] = { ' a ' , ' b ' , ' c ' },虽然只存储了3个字符,但是后面的7个位置被默认初始化为null字符('\0')。所以,q实际上是一个包含以null字符结尾的字符串。因此,strlen(q)的结果是3,即字符数组中实际存储的字符的个数。
strlen()函数用于计算以null字符('\0')结尾的字符串的长度,不包括null字符本身。
步骤 2:分析数组p
数组p定义为char p[ ]= { ' a ' , ' b ' , ' c ' },没有以null字符结尾。因此,strlen(p)的结果是不确定的,可能会导致异常行为。
步骤 3:分析数组q
数组q定义为char q[10] = { ' a ' , ' b ' , ' c ' },虽然只存储了3个字符,但是后面的7个位置被默认初始化为null字符('\0')。所以,q实际上是一个包含以null字符结尾的字符串。因此,strlen(q)的结果是3,即字符数组中实际存储的字符的个数。