C语言知识细节点(二)

目录

一、数据类型转换

二、运算符

三、输入、输出

一、数据类型转换

1、强制类型转换(用户自主转换)

例如:

int a=1;

float b = 0;

b=(float)a;

在变量前加上要转换成的类型名,即可强制转换。

2、隐式类型转换

 横向箭头:不管有没有进行混合运算,都势必进行转换

竖向箭头:只有在进行混合运算的时候才会进行转换

案例:

 解释:此处进行了加法运算,变量b的类型自动从int(有符号整型)转变成了unsigned int(无符号整型),-10的最高位作为符号位是1,当被认为是无符号数时,最高位的1被视为了具体的数值,而不再是符号,所以会成为一个很大的值。

二、运算符

C语言中的运算符有算术、关系、逻辑、sizeof、三目、逗号、位运算符等。

1、算术运算符

包括+、-、*、/、%、++、--

注意:%不能用于浮点数

++在前:++a 先自加,再赋值

++在后:a++ 先赋值,再自加

2、关系运算符

包括>、<、>=、<=、==、!=

注意:0< a < 5是错误写法,这是数学里的写法,但在C语言中,应该写成0<a&&a<5,中间用与连接。

等于号是==,而不是=,这是赋值。

3、逻辑运算符

包括&&、||、!

表达式1 && 表达式2

&&截断法则:有一个为假,结果就为假,前一个为假,后面就不进行运算了

表达式1 || 表达式2

||截断法则:有一个为真,结果就为真,前一个为真,后面就不再进行运算了

两种截断法则还是很重要的!往往容易被忽视!

4、sizeof运算符

使用方法:sizeof(数据类型)或sizeof(变量名),可以计算出数据类型所占空间大小。

5、三目运算符

表达式1?表达式2:表达式3

判断表达式1的值是否成立,如果成立,将表达式2的值作为整个表达式的值,否则,将表达式3的值作为整个表达式的值

6、逗号运算符

(表达式1,表达式2,表达式3…………表达式n),使用时是有括号的

从左至右依次计算每个表达式的值,将表达式n的值作为整个表达式的值,即使用最后一个表达式的值作为整个表达式的值。(每个式子都要去算一遍,因为可能会同最后一项有关联)

7、位运算符

包括&、|、~、^、<<、>>

注意是按位操作 

三、输入、输出

标准输入输出函数:scanf( )、printf( )

字符的输出输出函数:putchar( )、getchar( )

字符串的输入与输出函数:puts( )、gets( )

puts(数组名):将数组的内容输出打印,遇到‘\0’结束,并且语句结束后会自动换行

gets(数组名)接收从键盘输入的字符串,并在末尾自动添加’\0’,缺点是不会进行越界检查,输入时要注意是否超过界限,一般gets( )很少用,常用fgets( )

scanf和gets的区别:

(1)gets以回车作为结束符,scanf以回车、table键、空格作为结束符。

此处可以说明的是scanf在遇到空格就结束输入了,而gets不影响

(2)当完成字符串的输入之后,scanf缓冲区中会遗留空格、回车、tab键,以及一些字符,gets会自动清空缓冲区的内容,并且gets首先会检查缓冲区中是否有内容,有的话直接输出,scanf则只能由键盘输入

 此处第二行的输出就是来自scanf( )的缓冲区,被gets( )接收了,然后输出

标准输入输出下的格式控制符

%d:十进制整数

%o:八进制整数

%x、%X:十六进制整数

#:自动在八进制和十六进制前面加前缀(%#0与%#x)

%u:无符号整型

%hd:short类型

%ld:long类型

%lld:long long类型

%c:字符型

%f : float

%lf :double

%e:指数

%g : 选择小数和指数中比较短的一种

输出时格式控制符:m.n

其中m指的是输出的域宽,默认是右对齐,m的值大于数据的实际长度,左边补空格,否则,原样输出,n是指保留多少位小数

注意

1、scanf格式控制串,不要加修饰语,如果要加,原样输入

2、如果输入“%d%d”时要给多个变量赋值,在格式控制符之间没有间隔,那么在输入的时候,以空格、回车,Tab键作为一个变量的输入结束

3、全部输入结束,必须以回车作为结束符

4、如果是“%c%c”时,也就是输入字符时,此时输入的时候不能有空格、回车,Tabl键,因为空格、回车,Tab键也是字符。

解决办法:可以在“%c%c”之间加个空格或者逗号,列如“%c,%c”,输入时原样输入即可,或者加%*c,其中*代表的是抑制符,可以抑制一个符号,我们用键盘输入时就可以使用空格隔开了,列如“%c%*c%c”,我们就可以输入字符1 空格 字符2。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翔在天上飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值