void Func(char str_arg[2]) { int m = sizeof(str_arg); int n = strlen(str_arg); printf("%d\n", m); printf("%d\n", n); } int main(void) { char str[] = "Hello"; Func(str); }
5 5
5 4
4 5
4 4
输出结果为: 4 5
strlen只是对传递给Func 函数的那个字符串求长度,跟str_arg中的那个2 是没有任何关系的, 即使把2 改为200 也是不影响输出结果的
strlen函数 通过指针移位,遇'\0'停止 进行判断。所以得到的是字符串的长度,这里是5,没错。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
输出结果为: 4 5
strlen只是对传递给Func 函数的那个字符串求长度,跟str_arg中的那个2 是没有任何关系的, 即使把2 改为200 也是不影响输出结果的