首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

int & 变量名和int * 变量名区别解决思路

2012-06-04 
int & 变量名和int * 变量名区别C/C++ codevoid change(int * n){ *n*n+10 } void change01(int & n){ n

int & 变量名和int * 变量名区别

C/C++ code
void change(int * n){ *n=*n+10; } void change01(int & n){ n=n+10; }    int a=25;   //change(&a);    change01(a);   printf("a=%d\n",a);

这两个方法都能完成请问有什么区别啊?

[解决办法]
C里没有引用。最好写代码写规范点。免得把C和C++的界限弄混了
[解决办法]
如果你使用 MS VC 编译器, 加参数 /Tc, compile as C

如果你使用 Intel 编译器, 加参数 /Qstd=c99

限定编译器,以C 来编译代码

否则,日久,都还不知道自己写的是 C++ 和 C 的杂交产物

[解决办法]
16楼正解
C语言中没有引用,你的代码使用纯C的编译器是没法通过的,可以试一下
linux里面可以用gcc

探讨
谢谢大家的回复,我现在这个指的是C,这两种方式那种好,各有什么优缺点),各在什么情况下使用...

[解决办法]
探讨

把源文件名改为.c不就是C了?C++是.cpp。

[解决办法]
在c的环境下一般都是用指针,指针和引用的区别在于,指针是通过一个地址去存取一个数据,指针本身表示一个地址,引用不是地址,相当于那个数据的别名,引用在c++里用的多。
[解决办法]
探讨
C/C++ code
void change(int * n){
*n=*n+10;
}
void change01(int & n){
n=n+10;
}
int a=25;
//change(&a);
change01(a);
printf("a=%d\n",a);

这两个方法都能完成请问有什么……

[解决办法]
作为形参,chang(int &n),与chang(int* p )同样的效果,因为都是址传递,变量共用同一个存储空间。效果一样, 两种用途,因人而议,指针掌握的不错,两种用法都行,更加趋于对概念的理解。
[解决办法]
为什么没有显示回答问题的各个时间。。
其实我觉得c语言已经不是很纯净了。。。注意区分,这也是大家使用像vc之类的编译器的原因吧,能够通过并不代表是标准C.
[解决办法]
c语言中只有*,实参必须取地址,c++中增加了引用&,实参可以用元变量名。

热点排行