从品牌网站建设到网络营销策划,从策略到执行的一站式服务
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的存储地址, 直接修改其内容.
数组参数与指针参数相同, 均按地址传递.
这个就是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);
}
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是数组首地址,所以可以更改数组里的值
}
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图