目录
一.算术操作符
二.赋值操作符
三.单⽬操作符:++、--、+、-
四.强制类型转换
五scanf和printf
一.算术操作符
包含+,-,*,/,%
'+' 与 '-' ⽤来完成加法和减法;
'*' 用来完成乘法计算;
'/' 用来完成除法计算,只返回整数位的数值,丢弃小数部分。如: 10/5=2.....0 则结果 输出为2,如果用浮点型定义输出,则小数部分存在并且为0;
'%'运算符 % 表⽰求模运算,即返回两个整数相除的余值。这个运算符只能⽤于整数, 不能⽤于浮点数 如:10%4=2.....2 则输出结果为2
求模运算的正负号由第⼀个运算数的正负号决定
二.赋值操作符
1.连续赋值:
这种写法代码不容易被理解,最好分开赋值,方便观察。
2.复合赋值符
如果对一个数自增或者自减的操作可以写成这样。
也可以写成这样:
输出的结果一样 第二种方法更加简单,方便观看。
除了'+=','-='还有许多 例如: *= , /= , %= , >>= , <<= , &= , |= , ^=
三.单⽬操作符:++、--、+、-
1.++与--
++是⼀种⾃增的操作符,⼜分为前置++和后置++,--是⼀种⾃减的操作符,也分为 前置--和后置--
前置++与后置++
前置--与后置--
总结:符号在前 先+1或-1,后使用;符号在后先使用,后+1或-1。
2.+和-
+ 对正负值没有影响,是⼀个完全可以省略的运算符,但是写了也不会报错。
- ⽤来改变⼀个值的正负号,负数的前⾯加上 - 就会得到正数,正数的前⾯加上 - 会得到负数。
四.强制类型转换
如图所示 a属于浮点型,而用了整型来定义,这样一来编译器会出现一个警告但在3.14前写上(int) 就不会报错。(int)意义为强制转换为int类型
五.scanf和printf介绍
1.prinf
(1) printf() 的作⽤是将参数⽂本输出到屏幕。它名字⾥⾯的 f 代表 format (格式化),表⽰可以 定制输出⽂本的格式
(2)占位符:printf() 可以在输出⽂本中指定占位符。 所谓 “占位符”,就是这个位置可以⽤其他值代⼊
例如:
(2.1)输出⽂本⾥⾯可以使⽤多个占位符
%d是输入整数,%s用来输出字符串
还有许多其他的:
%a :⼗六进制浮点数,字⺟输出为⼩写。
%A :⼗六进制浮点数,字⺟输出为⼤写。
%c :字符。 • %d :⼗进制整数。
%e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。
%E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写
%i :整数,基本等同于 %d 。
%f :⼩数(包含 float 类型和 double 类型)。
%g :6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的 e 为⼩写。
%G :等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写。
%hd :⼗进制 short int 类型。
%ho :⼋进制 short int 类型。
%hx :⼗六进制 short int 类型。
%hu :unsigned short int 类型。
%ld :⼗进制 long int 类型。
%lo :⼋进制 long int 类型。
%lx :⼗六进制 long int 类型。
%lu :unsigned long int 类型。
%lld :⼗进制 long long int 类型。
%llo :⼋进制 long long int 类型。
%llx :⼗六进制 long long int 类型。
%llu :unsigned long long int 类型。
%Le :科学计数法表⽰的 long double 类型浮点数。
%Lf :long double 类型浮点数。
%n :已输出的字符串数量。该占位符本⾝不输出,只将值存储在指定变量之中。
%o :⼋进制整数。
%p :指针。
%s :字符串。
%u :⽆符号整数(unsigned int)。
%x :⼗六进制整数。
%zd : size_t 类型。
%% :输出⼀个百分号。
(3)输出格式:
1.限定宽度:printf() 允许限定占位符的最⼩宽度
如果希望改成左对⻬,在输出内容后⾯添加空 格,可以在占位符的 % 的后⾯ 插⼊⼀个 - 号
(4)总是显⽰正负号
%+d 可以确保输出的数值,总是带有正负号
(5)限定⼩数位数
如果希望⼩数点后⾯输出3位( 0.521),占位符就要写成 %.3f
这种写法可以与限定宽度占位符,结合使⽤
%6.2f 表⽰输出字符串最⼩宽度为6,⼩数位数为2。所以,输出字符串的头部有两个空格。
最⼩宽度和⼩数位数这两个限定值,都可以⽤ * 代替,通过 printf() 的参数传⼊
上⾯⽰例中, %*.*f 的两个星号通过 printf() 的两个参数 6 和 2 传⼊。
(6)输出部分字符串
%.5s 表⽰只输出字符串“hello world”的前5个字符,即“hello”。
2.scanf
当需要给变量输⼊值就可以使⽤ scanf 函数。
(1):scanf() 函数⽤于读取⽤⼾的键盘输⼊,scanf() 必须提前知道⽤⼾输⼊的数据类型,才能处理数据。 可以连续处理多个占位符
注意:scanf() 处理数值占位符时,会⾃动过滤空⽩字符,包括空格、制表符、换⾏符等
(2)scanf的返回值
scanf() 的返回值是⼀个整数,表⽰成功读取的变量个数
按住ctrl+z可以提前结束
(3)占位符
scanf() 常⽤的占位符如下,与 printf() 的占位符基本⼀致
%c :字符
%d :整数。
%f : float 类型浮点数。
%lf : double 类型浮点数。
%Lf : long double 类型浮点数。
%s :字符串。
%[] :在⽅括号中指定⼀组匹配的字符(⽐如 %[0-9] ),遇到不在集合之中的字符,匹 配将会 停⽌
以上除了 %c 以外,都会⾃动忽略起⾸的空⽩字符 ,如果要强制跳过字符前的空⽩字符可以在%c前面加一个空格
scanf() 将字符串读⼊字符数组时,不会检测字符串是否超过了数组⻓度。使⽤ %s 占位符时,应该指定 读⼊字符串的最⻓⻓度,即写成 %[m]s ,其中的 [m] 是⼀个整数,表⽰读取字符串的最⼤⻓度,后面的字符将被丢弃。
name 是⼀个⻓度为11的字符数组, scanf() 的占位符 %10s 表⽰最多读取⽤⼾输⼊ 的10个字符,后⾯的字符将被丢弃
(4)赋值忽略符
避免用户输入可能不符合预定的格式,导致结果错误。scanf() 提供了⼀个赋值忽略符*,只要把 * 加在任何占位符的百分号后⾯,该占位符就不会返回值
结果出错
%*c 就是在占位符的百分号后⾯,加⼊了赋值忽略符 * ,表⽰这个占位符没有对应的 变量,解读后不必返回