网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

c语言中改变被调函数 c语言改变函数参数的值

C语言问题:能否改变被调函数中实参的内容

void func(int a){a=100;}

成都创新互联专注于平阴企业网站建设,响应式网站,商城开发。平阴网站建设公司,为平阴等地区提供建站服务。全流程按需网站策划,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

int a=10;

func(a);

printf("a=%d",a); // 仍然显示 a=10, 因为整型参数a在func()中是按值传递的, 也就是说func()仅使用a的值, 而对存储a的内存地址不加修改;

void func(int* a){ *a=100;}

int a=10;

func(a);

printf("a=%d",a); // 显示 a=100, 因为整型参数指针a在func()中是按地址传递的, 也就是说func()使用a的存储地址, 直接修改其内容.

数组参数与指针参数相同, 均按地址传递.

C语言中到底如何通过地址值的传送在被调函数中直接改变调用函数中变量的值,请解释详细一点

这个就是2种函数调用方式中的地址传递调用方式(另一种是传值方式)。

下面通过具体的实例来说明传地址调用方式:

#includestdio.h

void swap(int *p1, int *p2)  // 交换两个整数——交换形参值(地址)

{  // 实际上是改变p1与p2所指向的地址

int *temp;

temp = p1;

p1 = p2;

p2 = temp;

printf("交换后:x=%d   y=%d\n", *p1, *p2);

}

void main()

{

int x, y;

scanf("%d%d", x, y);

swap(x, y);  // 调用swap函数的时候,是将变量x和y的地址传递进去的,也就是使形参p1和p2分别指向变量x和y的地址,改变的实际上还是x和y的值,只不过是通过地址的变换来实现的

printf("交换前:x=%d   y=%d\n", x, y);

}

C语言问题:能否改变被调函数中实参的内容?

int main(){

int a=0,b=1;

swap(a,b);

}

void swap(int a,int b);//实际是不能交换a和b的值的,是值传递

void f(int a[],int n){//这里a是数组首地址,所以可以更改数组里的值

}


文章名称:c语言中改变被调函数 c语言改变函数参数的值
转载来源:http://bjjierui.cn/article/dopeccp.html

其他资讯