Linksay 2020-01-16 00:10 采纳率: 100%
浏览 186
已采纳

C语言的一道问题求解答。?

假设有如下声明:
float rootbeer[10], things[10][5], *pf, value = 2.2;
int i = 3;
则下列语句中哪些是正确的,哪些是错误的?
a. rootbeer[2] = value;
b. scanf ("%f", &rootbeer);
c. rootbeer = value;
d. printf ("%f", rootbeer);
e. things[4] [4] = rootbeer[3];
f. things[5] = rootbeer;
g. pf = value;
h. pf = rootbeer;
解释一下为什么bcd是错误的,而且正确的形式是什么

  • 写回答

3条回答 默认 最新

  • 不堪沉沦 2020-01-16 08:59
    关注

    b选项

    因为rootbeer是数组,数组的标识符rootbeer本身就是一个指针,该指针指向的事整个数组空间第一个元素的首地址
    因此scanf()的时候,不需要添加地址符,直接scanf ("%f", rootbeer);即可。

    c选项

    同理,因为rootbeer本身就是一个指针,一个指针怎么能直接接受一个value变量的值呢!
    要么就是:

         rootbeer[0] = value;  //将值直接给第一个元素
    

    要么就是:

         rootbeer = &value   //将value的值得地址给rootbeer
    

    d选项

    还是同理,rootbeer是指针,直接printf ("%f", rootbeer);
    输出的事该指针的值,也就是第一个数组元素的首地址
    地址是整形,

        printf ("%d", rootbeer)
    

    将输出类似于6758568的值;

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

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)