void cmp(int* a,int* b,int* c){
if(*a>*b){
if(*b>*c)
printf("%d %d %d\n",*a,*b,*c);//疑问的地方在这个语句中
else{
if(*a>*c){
printf("%d %d %d\n",*a,*c,*b);
}
else{
printf("%d %d %d\n",*c,*a,*b);
}
}
}
else{
if(*a>*c)
printf("%d %d %d\n",*b,*a,*c);
else{
if(*b>*c){
printf("%d %d %d\n",*b,*c,*a);
}
else{
printf("%d %d %d\n",*c,*b,*a);
}
}
}
}
int main(){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
int* p1=&a;
int* p2=&b;
int* p3=&c;
cmp(p1,p2,p3);
return 0;
}
为什么在函数调用输出时printf里面a*和a都可以得到正确答案,这里输出a不是地址吗
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- zhaohuaxishiwzw 2021-01-19 16:06关注
c/c++中,*a是a的值所指向的地址中存储的值。
比如a = 200;
那么*a是200这个地址中所存储的值。
扩展一点,&a则是指a所在的地址的值,大概如下:
内存
地址 值
150 200 #a变量 所在的位置
200 300
那么对于上述内存地址及地址中存储的值来说,
a变量的值是200
&a是150 ,即a所在的地址的值
*a是300,即a变量值所指向的地址中存储的值
解决 无用评论 打赏 举报
悬赏问题
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘