C语言地址传递和引用传递

值传递就不说了,就是字面意思

#include<iostream>
using namespace std;
void change(int& n,int m){
	printf("在函数里的地址%d\n",&n);
	printf("在函数里的值%d\n",n);
	n=m;
	m=9;

}

void change2(int* f,int p){
	printf("在函数里的地址%d\n",&f);
	printf("在函数里的值%d\n",f);
	printf("在函数里的对地址取值%d\n",*f);
	*f=p;
	p=9;
}

int main()
{
    int i=1,j=2;
    printf("\n\n引用传递:\n");
	printf("初始地址%d\n",&i);
    change(i,j);
    printf("i=%d,j=%d\n",i,j);
    
    printf("地址传递:\n");
    int a=1,b=2;
    printf("初始地址%d\n",&a);
	change2(&a,b);
	printf("a=%d,b=%d\n",a,b);
	printf("结论:引用传递简单说就是同一个变量操作引用变量就是操作变量自己,地址传递就是把指针变量的值存为传入变量的地址进而对该变量的地址里的数据操作"); 
}

在这里插入图片描述

特别注意:更大家说一下写引用传递类型和指针的时候千万别写成int &a或者int *p,因为这两个是一个数据类型就像你的char
和int一样要写成int& a,int* p;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥学

感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值