为什么a前面有个&?它的作用是什么?不加会怎么样?
在什么情况下要使用呢?
5条回答 默认 最新
- m0_73292724 2022-09-09 19:32关注
一.因为scanf作为一个C语言函数,括号里所需要的是一个地址值作实参,即将你输入的值传到该地址即&a(变量a在内存里的地址中)保存,而非把变量a本身的值当作地址;(特殊情况:当a为数组时,单独的所谓的a代表数组a的地址,其内容也是地址,本质还是作为指针将地址来传入,见第四条1点)
二.&是取地址符,作用是将a所在地址求出;
三.不加的话,就相当于把变量a的当前值作为一个地址传入scanf函数,可能访问到不该访问的地方,如系统的指令集等,导致系统出错,进而程序崩溃,虽然有的编译器会报错,但有的不会;
四.要使用&的情况:1.将地址作为指针,传入一个函数当参数;2.运用scanf这种需要地址的函数时;
ps.题主作为初学者,一开始可以不必深究弄懂,等学指针时自然会明白的本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
- ¥15 Bug traq 数据包 大概什么价
- ¥15 在anaconda上pytorch和paddle paddle下载报错
- ¥25 自动填写QQ腾讯文档收集表