C语言函数传递数组和传递地址的区别你知道吗

时间:2021-07-27 00:17:08

传递数值

code:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
void deliveryData(int data)
{
    data = data + 100;
    printf("deliveryData:data=%d\n", data);
}
int main(void)
{
    int data=10;
    deliveryData(data);
    printf("main:data=%d\n", data);
    return 0;
}

运行结果:

C:\Users\Administrator\Desktop\C_Study\新版本c语言\程序\unit5_function>a.exe
deliveryData:data=110
main:data=10

传递地址

code:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
void deliveryData(int data[])//这里int data[]是地址(相当于指针)
{
    data[0] = data[0] + 100;
    printf("deliveryData:data=%d\n", data[0]);
}
int main(void)
{
    int data[2]={1, 2};
    deliveryData(data);//这里传递的是地址
    printf("main:data=%d\n", data[0]);
    return 0;
}

运行结果:

C:\Users\Administrator\Desktop\C_Study\新版本c语言\程序\unit5_function>a.exe
deliveryData:data=101
main:data=101

注:

传递数值,操作的是不同的内存空间传递地址,操作的是同个内存空间

总结

本篇文章就到这里了,希望能够给你带来帮助也希望您能够多多关注服务器之家的更多内容!

原文链接:https://blog.csdn.net/weixin_52011465/article/details/120168794