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文件。