鱼C论坛

 找回密码
 立即注册
查看: 2380|回复: 4

关于语句

[复制链接]
发表于 2022-11-26 14:34:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
float a = 1.6f;
这个语句为什么是对的,不应该是 float a = %1.6f 吗 ?
char c = c;
这个是错的,是不是因为c不能赋给c,还是因为char打印的是字符,c不属于;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-26 14:47:01 | 显示全部楼层
本帖最后由 jackz007 于 2022-11-26 14:54 编辑

        常量带后缀是在声明常量的类型。例如,1.6f 意思是在声明 1.6 是浮点数,又比如,1234LL 是在声明 1234 是 long long 型的整型数,需要用 8 个字节进行存储,如果没有LL后缀,那就会用 4 个字节。至于 %1.6f 只是在 printf() 里使用的格式描述符,要求 printf() 按照我们喜欢的格式(样子)输出浮点数(文本)。
        int c = c,这一条语句当然是错的,在 C 语言中, 5 是一个常量,'c' 也是一个常量,但是,c 是一个标识符,也就是说,编译器会当它是一个变量,可是,你之前又并未定义这个变量 c,现在,却要在定义一个变量的时候,要用这个变量(c),去进行初始化,那肯定不可以呀,道理很简单,请问,你知道这个时候 c 的值是多少吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-26 15:04:45 | 显示全部楼层
float a=1.6或者float a=1.6f都没有问题,但是float a=%1.6f这个就有问题了。%这个符号有两个作用:一是求余,如9%3的值是0。二是格式化输出时会用到%,如printf("%f",a)以浮点数在屏幕上输出a的值。第二个问题char c = c是不是写错了?你的意思是不是把字符c给字符变量c?如果是的话那就这样写 char c = 'c';
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-26 20:25:48 | 显示全部楼层

float a = 1.6f执行后a=1.6
%1.6f是占位符,表示读入六位小数的浮点数,不是合法常量
char c=c里 要么是c未定义(之前未声明c标识符),要么是c标识符重复(之前声明过c标识符)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-29 09:28:30 | 显示全部楼层
float a = 1.6f;
没有错,后面的  f 意思是把 1.6 这个数转化为 float,不过没有太大的必要,你说的 % 那个是在 printf, scanf 的格式占位符中才会有
char c = c;
这条语句可能错误,不管分号的事,每条语句后面都得有分号,这条语句我试了试,在 windows10 中是可以通过的,并且这条语句应该会把 c 初始化为 '\0',这个取决于编译器,Unix 好像也不会报错,这就很神奇
这条语句是否对错取决于编译器,一切都由编译器决定来怎么做,所以,我们也不能说他是对的,也不能说是错的,但是,最好不要用这种写法,也最好忘记这种写法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 10:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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