c++初学者

本文探讨了C++中结构体的两种传递方式——按值传递和按地址传递,并通过示例展示了这两种传递方式的不同应用场景及其优缺点。

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

1:为什么不将const用于基本类型?

因为,const用于指针,是为了防止指向的原始数据被修改,程序传递基本类型的时候,它将按值传递,以便函数使用副本。这样,原始数据将得到保护。

2:结构体是怎么传递的?

结构体按值传递时,只要传递结构名glitz即可,要传递它的地址,请使用地址运算符&glitz。按值传递将自动保护原始数据,但这是以时间和内存为代价的。按地址传递课节省时间和内存,但不能保护原始数据,除非对函数使用了const限定符。另外,按值传递意味着可以使用常规的结构成员表示法,但传递指针则必须使用简介成员运算符。

结构体按地址传递的标准格式是:

struct box
{
char maker[40];
float height;
float width;
float length;
float volume;
};

void show(const box *pd);

void compete(box *pd);

int main()

{

using namespace std;


box one={"wangkaixiang",2.0,2.0,2.0,4.2};
show(&one);
compete(&one);
show(&one);


cin.get();
return 0;

}


void show(const box *pd)
{
using namespace std;


cout<<"the maker:"<<pd->maker<<endl;
cout<<"the height:"<<pd->height<<endl;
cout<<"the width:"<<pd->width<<endl;
cout<<"the length:"<<pd->length<<endl;
cout<<"the volume:"<<pd->volume<<endl;


}


void compete(box *pd)
{
pd->volume=pd->height*pd->length*pd->width;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值