C语言的类型与变量

一、数据类型

C语言的类型与变量_第1张图片

1. 布尔型(c99中引入的布尔类型)

头文件stdbool.h

二、各种数据类型的长度

  1. sizeof()单位是字节
  2. 用法:

sizeof(类型)

sizeof 表达式 表达式可以省略(),但是类型不能省略括号

  1. sizeof求表达式长度时,当后边的表达式是不真实参与运算的,根据表达式的类型来得出大小。

C语言的类型与变量_第2张图片

因为s是short类型,长度为2byte,计算s的长度打印出来还是2byte

  1. sizeof运算符的返回类型,c语言规定是无符号整数,并没有规定具体的类型

  1. 当不确定返回什么类型时,可以用%zd打印

三、signed(包含负号)和unsigned

  1. 修饰字符串和整型类型
  2. int(默认带有正负号),如果要int不带正负号,就使用关键字unsigned声明

unsigned int a

  1. char(是否带有正负号,由当前系统决定)
  2. %d打印有符合的整数
  3. %u打印无符号的整数

四、变量

1.经常变化的值称为变量,不变的值称为常量

2.分类:全局变量,局部变量

3. 其实当局部变量和全局变量同名的时候,局部变量优先使用

输入:

C语言的类型与变量_第3张图片

输出:10

4.全局变量和局部变量在内存中存储在哪里?

  1. 局部变量是放在内存的栈区
  2. 全局变量是放在内存的静态区
  3. 堆区是⽤来动态内存管理的

C语言的类型与变量_第4张图片

五、算术操作符:+ - * / %(双目操作符)

1. 双目操作符

操作符有两个操作数,这种操作符称为双目操作符

2. /

除号两端是整数,则执行整数除法,得到的结果也为整数

(1)用%f打印整数,计算的结果就一定是错误的

打印时,占位符要和数据类型匹配,否则会得到错误的结果

输入:

输出:

(2) 尽管变量y的类型是 float (浮点数),但是 6 / 4 得到的结果是 1.0 ,而不是 1.5 。原因就在于 C 语 言里的整数除法是整除,只会返回整数部分,丢弃小数部分

输入:

C语言的类型与变量_第5张图片

输出:

C语言的类型与变量_第6张图片

(3)如果要返回浮点数,则除号的一边要为小数4——4.0

3. %(取模)——只能用于整数,不能用于小数

(1)返回的是两个整数相除的余数

(2)结果的正负号由第一个运算数的正负号决定

六、赋值操作符 =

(1)连续赋值——从右向左赋值

c=b=a+3

(2)复合赋值

a+=3 //a=a+3

a-=3 //a=a-3

a*=3

a/=3

a%=3

七、单目操作符:++、--、+、-

1. 单目操作符:操作数为1个

2. ++、--

(1)前置++:先+后使用 ++a

C语言的类型与变量_第7张图片

(2)后置++:先使用后+ a++

C语言的类型与变量_第8张图片

先把a的值赋给b,再自增

C语言的类型与变量_第9张图片

先将a的值打印出来,再自增

(3)前置--:先-后使用

(4)后置--:先使用后+ a++

C语言的类型与变量_第10张图片

C语言的类型与变量_第11张图片

3. +、-:正号、负号

八、强制类型转换

1.语法

(类型)

2.

C语言的类型与变量_第12张图片

九、printf()、scanf()

1.printf()

(1)占位符

(2)限定宽度

  1. 不满5位,会给他添满5位
  2. %5d(采用右对齐)

C语言的类型与变量_第13张图片

  1. %-5d(采用左对齐)

  1. %12f

%f默认打印小数点后6位

小数点前再补齐5个空格,小数点算1位, 加起来12位

C语言的类型与变量_第14张图片

(3)限定小数位数

%.2f(只保留小数点后两位)

(4)限定输出部分字符串

%.2s(只输出开头的两个字符)

2.scanf()

(1)变量前必须加上&运算符(指针变量除外)。

scanf传递的不是值,是地址

(2)处理数据时,会自动过滤掉空白字符

包括空格、制表符、换行符等

(3)scanf()的返回值

scanf() 的返回值是⼀个整数,表示成功读取的变量个数。 如果没有读取任何项,或者匹配失败,则返回 0 。

C语言的类型与变量_第15张图片

如果在成功读取任何数据之前,发生了读取错误或者遇到读取到文件结尾,则返回常量 EOF。

C语言的类型与变量_第16张图片

(4)测试多组数据

C语言的类型与变量_第17张图片

C语言的类型与变量_第18张图片

(5)占位符

C语言的类型与变量_第19张图片

%c

上面所有占位符之中,除了 %c 以外,都会自动忽略起首的空白字符。%c不忽略空⽩字符,总是返回当前第⼀个字符,⽆论该字符是否为空格

%s

不会包含空白字符,读取从第一个非空白字符开始读取,读到空白字符就停止读取

(6)输入的格式要与预定的格式相同

C语言的类型与变量_第20张图片

(7)赋值忽略符:*

C语言的类型与变量_第21张图片

将占位符后面加上一个*号

%*c :只要把 * 加在任何占位符的百分号后⾯,该占位符就不会返回值,解析后将被丢弃。

你可能感兴趣的:(c语言,c++)