OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4369|回复: 7

有到c语言题目不懂,请大神赐教!

[复制链接]

8

主题

45

帖子

0

精华

高级会员

Rank: 4

积分
757
金钱
757
注册时间
2016-3-1
在线时间
90 小时
发表于 2016-3-12 20:24:40 | 显示全部楼层 |阅读模式
1金钱
这句话“如果a是一维字符数组名,则语句scanf("%s", &a); 是正确的。”
是正确的吗?
麻烦解释一下,谢谢!!

最佳答案

查看完整内容[请看2#楼]

运行没问题,但代码是错误的。 正确的代码是: [mw_shl_code=c,true]scanf("%s", a);[/mw_shl_code] 因为a和&a的值是一样的,所以传给scanf的参数一样,代码功能正常。 不过,某些编译器可能会警告或报错。 解释: 假设有一数组,int x[5][4],且已知&x[0][0]=0x00000024, 即这个数组的零行零列元素的地址为0x00000024, 那么,&x[0]、&x、x[0]、x、甚至&x所代表的值都是0x00000024, 相信任何一本C语言基础教材 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-3-12 20:24:41 | 显示全部楼层
运行没问题,但代码是错误的。

正确的代码是:
[mw_shl_code=c,true]scanf("%s", a);[/mw_shl_code]

因为a和&a的值是一样的,所以传给scanf的参数一样,代码功能正常。
不过,某些编译器可能会警告或报错。


解释:
假设有一数组,int x[5][4],且已知&x[0][0]=0x00000024,
即这个数组的零行零列元素的地址为0x00000024,
那么,&x[0]、&x、x[0]、x、甚至&x所代表的值都是0x00000024,
相信任何一本C语言基础教材都会辨析它们为什么相同,建议找本教材看看
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

8

主题

45

帖子

0

精华

高级会员

Rank: 4

积分
757
金钱
757
注册时间
2016-3-1
在线时间
90 小时
 楼主| 发表于 2016-3-12 22:11:38 | 显示全部楼层
xkwy 发表于 2016-3-12 20:24
运行没问题,但代码是错误的。

正确的代码是:

谢谢啊!!!!
回复

使用道具 举报

8

主题

45

帖子

0

精华

高级会员

Rank: 4

积分
757
金钱
757
注册时间
2016-3-1
在线时间
90 小时
 楼主| 发表于 2016-3-12 22:16:11 | 显示全部楼层
xkwy 发表于 2016-3-12 20:24
运行没问题,但代码是错误的。

正确的代码是:

再请教你一道题:
设有整型变量a,b,c,他们的初始值都是1,运行表达式:++a || ++b || ++c 后,a,b,c,的值分别为?
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-3-13 11:44:23 | 显示全部楼层
linzhijiang_sz 发表于 2016-3-12 22:16
再请教你一道题:
设有整型变量a,b,c,他们的初始值都是1,运行表达式:++a || ++b || ++c 后,a,b,c,的值 ...

a=2,b=c=1,
原因是逻辑表达式一旦获得确定的值,则不再多余判断。
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

7

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-3-1
在线时间
73 小时
发表于 2016-3-14 11:22:21 | 显示全部楼层
標準的學校檔阿
回复

使用道具 举报

8

主题

45

帖子

0

精华

高级会员

Rank: 4

积分
757
金钱
757
注册时间
2016-3-1
在线时间
90 小时
 楼主| 发表于 2016-3-16 11:13:11 | 显示全部楼层
xkwy 发表于 2016-3-13 11:44
a=2,b=c=1,
原因是逻辑表达式一旦获得确定的值,则不再多余判断。

谢谢啊!!!!
回复

使用道具 举报

8

主题

45

帖子

0

精华

高级会员

Rank: 4

积分
757
金钱
757
注册时间
2016-3-1
在线时间
90 小时
 楼主| 发表于 2016-3-16 11:14:30 | 显示全部楼层

出来工作都在写汇编了!!c语言忘得差不多了!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 12:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表