问题遇到的现象和发生背景
数组传入函数后不能正确利用sizeof(arr)/ sizeof (arr[0]) 计算长度
用代码块功能插入代码,请勿粘贴截图
运行结果及报错内容
void func(char* s) {
int num;
num = sizeof(s) / sizeof(s[0]);
cout << num << endl;
}
数组传入函数后不能正确利用sizeof(arr)/ sizeof (arr[0]) 计算长度
void func(char* s) {
int num;
num = sizeof(s) / sizeof(s[0]);
cout << num << endl;
}
对的,函数参数用数组的话,是作为指针处理的,所以sizeof(s)得到的是指针自身的长度,也就是4 。所以当作数组用时,你就需要加一个长度参数;如果s当字符串用,那么strlen(s)可以得到字符串长度