|
发表于 2020-1-18 13:06:05
|
显示全部楼层
应为你传递的根本就是个指针,你对数组的所有操作都是对这个指针指向的对象的操作,
对于指针本身仍然是值传递
这段代码也许能帮助你理解- #include <stdio.h>
- int a[4] = { 1,2,3,4 };
- int b[4] = { 5,6,7,8 };
- int func(int f[]) {
- printf("调用func前f的值:");
- for (int i = 0; i < 4; ++i) {
- printf("%d ", f[i]);
- }
- printf("\n");
- f = b; //这才是对指针本身的操作
- printf("调用func后f的值:");
- for (int i = 0; i < 4; ++i) {
- printf("%d ", f[i]);
- }
- printf("\n");
- }
- int main()
- {
- int a[4] = { 1,2,3,4 };
- printf("调用func前a的值:");
- for (int i = 0; i < 4; ++i) {
- printf("%d ", a[i]);
- }
- printf("\n");
- func(a);
- printf("调用func后a的值:");
- for (int i = 0; i < 4; ++i) {
- printf("%d ", a[i]); //可以看到,a并没有发生改变
- }
复制代码 |
|