c语言的形参可以设为指针型的如 int *a ,但还可以设为 int &a 想问这两个的差别

比如我要传一个数组x[5] ,那么实参应该是数组名x ,那形参为 int *a 和 int &a 有什么区别?

int *a 是用指针变量做形参.
int &a 是用引用做形参.

区别如下:

用指针的话是间接方式访问传进来的地址对应的变量的内存空间.
如果是用引用的话,当然c里没有引用的概念, 只c++引进的一个概念.
引用是变量的别名 , 所以跟直接访问变量本身一样, 只是换个名字而已, 实质是对传进来的变量本身操作, 而并非拷贝.
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-28
int *a 是指针
int &a 是引用。
第2个回答  2010-06-28
int *a 是指针
int &a 是引用。

不过引用是C++中的,C中是没有引用的。。。
第3个回答  2010-06-28
int *a 形参是指针,int &a 形参是引用.c语言中只有指针的概念,c++中才有引用的概念。指针是间接方式访问传进来的地址对应的变量的内存空间;引用是变量的别名 , 所以跟直接访问变量本身一样, 只是换个名字而已, 实质是对传进来的变量本身操作。

c语言的形参可以设为指针型的如 int *a ,但还可以设为 int &a 想问...
int *a 是用指针变量做形参.int &a 是用引用做形参.区别如下:用指针的话是间接方式访问传进来的地址对应的变量的内存空间.如果是用引用的话,当然c里没有引用的概念, 只c++引进的一个概念.引用是变量的别名 , 所以跟直接访问变量本身一样, 只是换个名字而已, 实质是对传进来的变量本身操作, 而并...

C++中定义函数时,函数的参数什么时候用int **a ?与直接用int a[]和...
当实参是个数组时,形参我们一般这样写int a[],也可以写成 int *a 它们所表示的意义是,传递数组的首地址到子函数中!三、int (* a)[10] 这里括号中的10不可少!这叫数组指针,即a是个指针,它的数据类型是个int[10](有10个元素的数组)。a+1 会跳过一个int[10]的空间 a+2 会跳过...

请问c语言中形参为指针是为设么实参有时加&有时不加,求高手解答。
int func2(int m){……}\/\/int类型的变量做形参 void main(){ int a=0,*b,c;b=&a;c=func1(b);\/\/或者你也可以写c=func1(&a);因为此时需要提供一个专门于int类型地址的实参,&a一定是int类型的地址,指针b本身已经是地址了,它的值正好是一个int类型变量的地址 c=func2(*b);\/\/或...

C语言中int*和int *的区别
没有区别,也没有影响,主要是为了让人容易理解一些。int*让人一眼看上去,很容易让人理解成*与int是一个整体,实际是*应该与后面变量名是一个整体。比如:我要定义两个int指针型变量a、b.int* a,b;int* a,*b;int *a,b;int *a,*b;这四种情况有对有错,第一和第三种是一样的情况,第...

求大神解释一下C语音中指针amp;*a与*amp;a的区别,用直白点的话解释,书...
1.指针类型。这个很重要,一个指针是有类型的,也就是一个地址是有类型的。具体说是某一个地址会指向不同类型的数据,这是不一样的,例如int*p;p是指向int型数据。double*p1;p1是指向double型数据。但是p和p1本身在内存中占用的空间是4个字节(对于32位的系统来说),如果是在TC中编译c程序,应该...

C语言中*a是什么意思啊?和数组一个用法吗?
int *a表示a是一个指针,或者也可以是一个数组名,你可以理解为数组 既然a是指针,那么在指针前面加*号表示对该指针所指向的地址取值 所以*a=i;就是把i的值赋值给a指针所指向的地址的值,说起来有些拗口,其实就是说改变了a这个地址内存的值 n=*n+1;也是一个道理,表示n指向的地址的值加1 ...

请问 有两个函数 定义为 func(int *a,int *b); func(int &a,int &b...
一个用指针做参数,一个是用引用做参数。c++里引用很常用的,引用就相当于一个变量的别名,举个例子:int a=10;int &b = a; \/\/这里b就是a的引用,也就是a的别名 如果你改变b,a也会跟着改变,如:b = b+10;这时b为20,a也为20了 ...

c语言指针
c语言指针 最近学c语言指针,真是太混乱了,课后题不明白,求大神讲的通俗易懂些,例如编写一个函数,能同时求出三个整数的最大值和最小值,并通过形参把结果传回给调用函数。通过形参把结果传回... 最近学c语言指针,真是太混乱了,课后题不明白,求大神讲的通俗易懂些,例如编写一个函数,能同时求出三个整数的最...

c语言的一个函数原型int A(int x, int *y , &Z),求这三个入参的解释...
简单通俗来说就是 第一个是复制一份传进去,函数内改变不影响原始值。(值传递)第二个传进去是一个指向int的指针,之后的操作按指针计。(地址传递)第三个是直接传递,函数内改变也会改变原始值。(引用传递)最后,不要评论,追问几次又不怎么滴,评论我这里可是没有提示的,多会看见我可说不准...

C语言中当形参是指针,实参是什么?当实参是指针,形参是什么?为什么?_百...
第一个问题:形参是指针,实参就应该是对应数据类型的地址。例如:swap(int *x,int *y){ int t ;t = *x;x = *y;y = t;} int main(){ int a = 2,b=6;swap(&a,&b);\/\/因为swap函数的形参是int类型的指针,所以传入的实参应该是int类型变量的地址 return 0;} 第二个问题:当...

相似回答