C语言初学(三)

bite集训营

5/30

每周一点课程回顾以及知识总结(对于别人真的没什么用 :-(

1、除号/两边都是整型的话,会执行整型除法,%f无法正常输出,只有当除号两边有一个为小数时,%f才能正常输出。

注:小数点位数过多,可以通过%.2f来减少小数点位数,且会四舍五入。

2、取余运算两边必须是整型

3、++a,与a++的区别?

如果只是单纯自增的话,二者没有区别,在涉及赋值操作时,有很大区别,如图。

a先将值赋值给b,然后a再自加1;而A先完成自加,再将自加后的A值赋值给c,得到如图结果。

同理a--和--a。

4、复合赋值符

本质上是相同的,上着对于新人容易理解,而后者对于熟练者更优先考虑,同理-=、*=、/=、%=等等

5、有关printf函数

①:%d、%c、%s等等,这类被称为占位符,可以被其他值代入。

②:在printf函数中,字符串用双引号引出,字符用单引号,整型直接输入。按占位符顺序输入,数据类型要一一对应

③:

%12f,数字12指最小宽度,若要打印的数据位数不够会加空格,由于浮点型数据默认小数后六位,所以上一个输出中,3前面多了四个空格,若将小数点改成后三位,3前面就多了六个空格,直到打印的数据宽度为12。%-12f会在后面加空格

④:限制宽数和限制小数点的数可以是变量,通过%*.*的方式来实现,不要忘了在最后加上需要打印的数据

⑤:让数据总是显示正负号,可以通过%+d来得到。

⑥:输出部分字符串的方式,通过%.5s的方式来控制输出字符串的个数。

⑦:%5d,表示最小宽度为5位,如果不满5位,对应值的前面会添加空格

6、有关scanf函数。

①:scanf用于读取用户键盘输入,在用户输入数据并按下回车后,scanf才会开始处理信息,其中&指去地址符号,将输入的值,送到变量中。

②:scanf中的占位符目的是为了让scanf函数如何去解读用户输入的数据,只有当scanf()提前知道用户输入的数据类型时,才能够处理数据

因为%d,系统认定数据类型为整型,即使输入double类型数据,系统也会以整型的方式输出,强行数据类型会出错

③:Scanf处理数值占位符时,会自动过滤空白字符、包括回车、制表符、换行符(除%c, 因为空格也是字符,若在强制跳过空格,则在 %c加入空格(”空格%c”),表示跳过零个或多个空格)

打印字符时,因为空格也算字符,所以scanf会解读出空格,而在scanf函数中,%c前加入空格后,在调制界面中即使输入再多空格,系统最终也能解读出我们输入的字符。

④:scanf原理:用户的输入先放入缓存,等到按下回车键,按照占位符对缓存进行解读。解读输入时,会从上一次解读遗留的第一个字符开始,直到读完缓存,或者遇到第一个不和条件的字符为止

第一次输入时,解读的数据类型为整型,所以读到.停止,剩下的数据仍在缓存内,第二次以浮点型数据类型继续解读,直到#停止,因为缓存中一直有数据存在,所以不会执行第二次scanf,只有当每次的数据类型输入正确是,系统才会解读完缓存中的数据,从而可以输入新的数据,如图

⑤:数组名本来就是地址,数组名是数组首元素的地址,因此scanf函数中,数组名前不用加&

⑥:Scanf在读取数据,并且存放时,不会检测空间是否合适,因此在读取数组时,需要定 义空间的大小,使读取过程安全 %[m]s 括号中表示读取字符串的最大长度,超过部分舍弃

⑦:Scanf(“%d_%d_%d_%d”),在调试界面时,用户输入的格式得和括号一致时,系统才能正常读取。

注:为了使任何输入方式都能够正确,可以使用scanf (“%d%*c$d%*c%d”,&year,&month,&day)

 %*c不会影响后面year,month,day,系统在读取过程中,会忽略%*c。

7、系统如何区别float和double类型数据 ?

系统会将0.0f 判断为float类型数据 ,而将0.0判断为double类型

  • 22
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值