C语⾔数据类型和变量

目录

一.算术操作符

二.赋值操作符

三.单⽬操作符:++、--、+、-

四.强制类型转换

五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 就是在占位符的百分号后⾯,加⼊了赋值忽略符 * ,表⽰这个占位符没有对应的 变量,解读后不必返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值