C和C++ 函数传递本体的差别

本文探讨了C和C++在函数参数传递上的差异。C++中使用引用传递可以直接修改原变量,而C语言则需要通过指针来实现。如果在C语言中误删了指针符号,会导致在函数内部的修改无法反映到外部变量。理解这种差异对于编写高效且无误的代码至关重要。
摘要由CSDN通过智能技术生成

C和C++ 函数传递本体的差别

C++ 版本

#include<stdio.h>

void test(int& e) {
	e = 2;
}
int main() {
	int e = 1;
	test(e);
	printf("%d", e);
	return 0;
}

C版本

#include<stdio.h>

void test(int* e) {
	*e = 2;
}
int main() {
	int e = 1;
	test(&e);
	printf("%d",e);
	return 0;
}

如果将函数形参中的& 或 删除,形参将进行复制,即在内存中重新开辟单元,对于函数内的修改,不会反馈到原元素中,需要注意*

(有利有弊,用的好就可以很舒服,但有时不注意也会造成问题)

如果分不清自己写的是C还是C++,改文件后缀,文件后缀为.c为C语言,文件后缀为.CPP,为C++语言,一般创建文件自动创建为.cpp文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值