C语言中的值传递和地址传递,C++的引用

博客主要介绍了C语言中线性表结构体的定义,以及C语言里值传递和地址传递的区别。值传递时实参不变,地址传递可改变实参。还提及C++的引用方法,使用引用能改变引用参数的值,否则与C语言值传递类似。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

typedef struct {
elemtype data[maxsize];
int length;
}Sqlist;

定义一个这样的线性表结构体。
理解C语言中的值传递和地址传递,如果没有用指针,而是直接用变量传递给函数,那么
这个传递是实参传递,实参不会改变;例如,int ListEmpty(Sqlist L) 这个没有指针变量,
所以下面函数直接把实参传递给了它,可以直接使用L.length表示长度;即下面调用时 ListEmpTy(l),并不是传地址;
如果这个变量是要改变的话,那么C语言中要使用地址传递,即ListEmpTy(Sqlist* L),这里面
的L是一个指针变量,用来存放传递过来的这个参数的地址,下面调用函数即要传递地址,
即ListEmpTy(Sqlist &l),这样子l这个变量的值会改变,使用里面的属性时要(*L).length或者L->length;

C++里面有一个引用方法,即&,它不是C语言中的取地址,当使用这个引用的时候,可以改变引用参数的值,即如果要改变L这个线性表的时候,调用的时候应该是DeleteList(&L),如果不加&,即跟C语言的是一样的,传递实参给它,但是实参是不会改变的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值