m0_73647315 2022-09-09 19:27 采纳率: 100%
浏览 43
已结题

c语言刚学第一天求解答

为什么a前面有个&?它的作用是什么?不加会怎么样?
在什么情况下要使用呢?

img

  • 写回答

5条回答 默认 最新

  • m0_73292724 2022-09-09 19:32
    关注

    一.因为scanf作为一个C语言函数,括号里所需要的是一个地址值作实参,即将你输入的值传到该地址即&a(变量a在内存里的地址中)保存,而非把变量a本身的值当作地址;(特殊情况:当a为数组时,单独的所谓的a代表数组a的地址,其内容也是地址,本质还是作为指针将地址来传入,见第四条1点)
    二.&是取地址符,作用是将a所在地址求出;
    三.不加的话,就相当于把变量a的当前值作为一个地址传入scanf函数,可能访问到不该访问的地方,如系统的指令集等,导致系统出错,进而程序崩溃,虽然有的编译器会报错,但有的不会;
    四.要使用&的情况:1.将地址作为指针,传入一个函数当参数;2.运用scanf这种需要地址的函数时;
    ps.题主作为初学者,一开始可以不必深究弄懂,等学指针时自然会明白的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 9月23日
  • 已采纳回答 9月15日
  • 创建了问题 9月9日

悬赏问题

  • ¥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腾讯文档收集表