当数组作为参数传入函数时,函数实际传入的是数组首地址。
例:
int numbers[5] = {1, 2, 3, 4, 5};
void fun(int data[], int length) {}
该函数中,numbers 只是指向数组首元素的指针,与传入的原型有所不同。
例:
1. sizeof(numbers) = 5;
sizeof(data) = 4; //指针本身的大小
2. 对于numbers 可以使用范围for循环,对data不可以使用范围for循环语句。
3. 但是对于fun()函数中的data指针,仍然可以使用下标运算。此处的下标运算指的是内置下标运算,可以处理负值,string或者vector等使用的是标准库类型的下标运算,其下标值是无符号类型。
PS: 原因待补充。
数组作为函数参数的指针问题
最新推荐文章于 2024-07-26 21:12:58 发布