C语言 int &a 是什么意思

好多函数形参上都写了这么一个东西(也许不是int型我只是随便写了个)... 好多函数形参上都写了这么一个东西(也许不是int型 我只是随便写了个) 展开
 我来答
小星星教育知识分享
高粉答主

2019-11-26 · 用教师的智慧点燃学生的智慧火花
小星星教育知识分享
采纳数:202 获赞数:67132

向TA提问 私信TA
展开全部

int&a的时候,编译器不会给a分配内存空间,因为它只是另一个变量的标记;

&a是存放a的内存地址,比如变量a=1,&a就等于存放这个1的内存地址的数值;

例:

#include<stdio.h>

intmain()

{

inta[2]={1,2};

intb=5;

int*p1=a;

int*p2=&a;

printf("b:%d&b:%d\n",b,&b);

printf("a[]:%d&a[]:%d\n",*p1,*p2);

getch();

return0;

}

扩展资料

int&b=i;//这里b是一个引用,它是变量i的引用引用就是指针,对比如下程序:

voidfunction(int*a)

{

*a=100;

}intmain(){

intx=200;

int*b=&x;

function(b);

return(0);

}

voidfunction(int&a)

{

a=100;

}intmain(){

intx=200;

function(x);

return(0);

}

int&a应该也是voidfunction(int&a)传递参数

水上漂汤
2014-12-09 · TA获得超过1万个赞
知道大有可为答主
回答量:1830
采纳率:71%
帮助的人:1420万
展开全部
在定义一个变量的时候,*表示指针
比如int * a,表示a是一个指向int的指针

int **a相当于(int *) * a,表示a是一个指向int *的指针(通俗点说就是a的值是一个指针,或者说地址),即指向int指针的指针,这是2级指针。
int m = 1;
int *p = &m;
int ** a = &p;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2015-10-02 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6373万
展开全部
当int* a和int* b后面都有分号时,int* a;是声明或说明指向int型变量的指针a,int* b;是声明或说明指向int型变量的指针b。题面中二者后面都没有分号,应该说都是错误语句。行话这样表述:int* a;是声明int*型指针a,int* b;是声明int*型指针b。当然要明白,指针的类型是指它指向的目标的类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-25
展开全部
int*是指向int的指针
char*是指向char的指针
*a是对指针a解引用
char* p;是声明一个char*类型的指针
*p = &c;把c的地址赋给p指向存储的内存

int b = 3;
int* a = &b; // 取b的地址并赋给指针a
*a = 4; // 修改a所指向地址的内存内容为4,因为a指向b,所以这句执行之后b = 4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-05-24
展开全部
nt &b = i;//这里b是一个引用,它是变量i的引用
引用就是指针,两者没有区别。我们可以把引用想象成一个不需要"*"就可以访问变量的指针,对比如下程序:void function(int *a){
*a = 100;
}int main(){
int x=200;int *b = &x;function(b);return(0);
} void function(int &a){
a = 100;
}int main(){
int x = 200;function(x);return(0);
}以上两段程序完成的功能是一样的。
你那个 int &a
应该也是void function(int &a)这种形式的把,传递参数的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式