第2讲:C语⾔数据类型和变量

⽬录
1. 数据类型介绍
2. signed 和 unsigned
3. 数据类型的取值范围
4. 变量
5. 算术操作符:+、-、*、/、%
6. 赋值操作符:=和复合赋值
7. 单⽬操作符:++、--、+、-
8. 强制类型转换
9. scanf和printf介绍

正文

1. 数据类型介绍

C语⾔提供了丰富的数据类型来描述⽣活中的各种数据。

整型类型描述整数字符类型描述字符浮点型类型描述小数

编译器只有知道了数据的类型,才知道怎么操作数据。

以下主要探讨内置数据类型

1.1 字符型 

char
[signed]char
unsigned char

1.2 整型  

//短整型
short[int]
[signed] short[int]
unsigned short[int]

//整型
int
signed[int]
unsigned int

//长整型
long [int]
[signed] long[int]
unsigned long[int]

//更长的整型
//C99中引入
long long[int]
signed long long[int]
unsigned long long[int]

1.3 浮点型 

float
double 
long double
1.4 布尔类型( 专⻔表⽰真假的
C 语⾔原来并没有为布尔值单独设置⼀个类型,⽽是使⽤整数 0 表⽰假⾮零值表⽰真

C99 中也引⼊了 布尔类型 ,是专⻔表⽰真假的

布尔类型的使⽤得包含头⽂件 <stdbool.h>
布尔类型变量的取值是:true或者false
代码演示:
#include <stdio.h>
#include<stdbool.h>

int main()
{
	_Bool flag = true;
	if (flag)
		printf("i like C\n");
	return 0;
}
1.5 各种数据类型的⻓度

每⼀种数据类型都有⾃⼰的⻓度,使⽤不同的数据类型,能够创建出⻓度不同的变量,变量⻓度的不 同,存储的数据范围就有所差异。
1.5.1 sizeof操作符(返回值类型 size_t,占位符%zd

sizeof 是⼀个关键字,也是操作符,专⻔是⽤来计算sizeof操作符数的类型⻓度的,单位是字节
sizeof 操作符的操作数可以是类型,也可是变量或者表达式。
sizeof(数据类型)
sizeof 表达式

sizeof 运算符的返回值,C 语⾔只规定是⽆符号整数,没有规定具体的类型。

C 语⾔提供了⼀个解决⽅法,创造了⼀个类型别名 size_t ,⽤来统⼀表⽰ sizeof 的返
回值类型。
2. signed 和 unsigned
C 语⾔使⽤ signed unsigned 关键字修饰字符型整型类型的。
signed 关键字,修饰的字符型和整型有符号。
unsigned 关键字,修饰的字符型或整型无符号。
整型int 默认带符号
字符型float/double 默认是否带符号有当前系统决定
3. 数据类型的取值范围
每⼀种数据类型有⾃⼰的取值范围,也就是存储的数值的最⼤值和最⼩值的区间,有了丰富的类
型,我们就可以在适当的场景下去选择适合的类型。如果要查看当前系统上不同数据类型的极限值:
limits.h ⽂件中说明了整型类型的取值范围。
float.h 这个头⽂件中说明浮点型类型的取值范围。
4. 变量
4.1 变量的创建
类型是⽤来创建变量的。
C语⾔中把经常变化的值称为变量,不变的值称为常量
变量创建的语法
1 data_type name;
2    |       |
3    |       |
4 数据类型 变量名

比如:

1 int age; //整型变量
2 char ch; //字符变量
3 double weight; //浮点型变量

变量的初始化,变量在创建的时候就给一个初始值

int age = 18;
char ch = 'a';
double weight = 55.0;

4.2 变量的分类

变量分为全局变量(存储在静态区)局部变量(存储在栈区)

全局变量:在⼤括号外部定义的变量就是全局变量
局部变量:在⼤括号内部定义的变量就是局部变量
当局部变量和全局变量同名的时候,局部变量优先使⽤。(就近原则)
5. 算术操作符:+、-、*、/、%
C语⾔中为了⽅便运算,提供了⼀系列操作符,其中有⼀组操作符叫:算术操作符(运算符)。分别是: + - * \ % ,这些操作符都是双⽬操作符(即有两个操作数)
+操作符完成加法    -操作符完成减法    *操作符完成乘法
/操作符完成除法
除号的两端如果是整数,执⾏的是整数除法,得到的结果也是整数。
如果希望得到浮点数的结果,两个运算数必须⾄少有⼀个浮点数,这时 C 语⾔就会进⾏浮点数除法
运算符 % 表⽰求模运算,即返回两个整数相除的值。这个运算符只能⽤于整数,不能⽤于浮点数。
负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。
6. 赋值操作符: = 和复合赋值
变量创建的时候给⼀个初始值叫初始化,在变量创建好后,再给⼀个值,这叫赋值
赋值操作符 = 是⼀个随时可以给变量赋值的操作符。
复合赋值符
在写代码时,我们经常可能对⼀个数进⾏⾃增、⾃减的操作,如:
int a = 10;
a = a+3;
a = a-2;
//更加方便的写法
int a = 10;
a += 3;
a -= 2;

C语⾔中提供了复合赋值符,⽅便我们编写代码,这些赋值符有:
+= -=
*= /= %=

>>= <<=
&= |= ^=
7. 单⽬操作符:++、--、+、-
++--+()-() 就是单⽬操作符
7.1 ++和--
++是⼀种⾃增的操作符,⼜分为前置++后置++,--是⼀种⾃减的操作符,也分为前置--后置--.
7.1.1 前置++
计算⼝诀:先+1,后使⽤;
7.1.2 后置++   
计算⼝诀:先使⽤,后+1
7.1.3 前置--
计算⼝诀:先-1,后使⽤
7.1.4 后置--
计算⼝诀:先使⽤,后-1
8. 强制类型转换(不到万不得已的时候不使⽤
在操作符中还有⼀种特殊的操作符是强制类型转换,语法形式很简单,形式如下:
(类型)

示例

1 int a = (int)3.14;//意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分
9. scanf(输入)和printf(输出)介绍
9.1 printf
9.1.1 基本⽤法
printf() 的作⽤是将参数⽂本输出到屏幕。它名字⾥⾯的 f 代表 format 格式化),表⽰可以 定制输出⽂本的格式。
9.1.2 占位符(%xx)
printf() 可以在输出⽂本中指定占位符。
所谓 “占位符”,就是这个位置可以⽤其他值代⼊
9.1.3 常用占位符列举
  %c :字符。
 %d :⼗进制整数。
 %f :⼩数(包含 float 类型和 double 类型)。
 %p :指针。
 %s :字符串。
 %u :⽆符号整数
9.1.4 输出格式
printf() 可以定制占位符的输出格式。
9.1.4.1 限定宽度
printf() 允许限定占位符的最⼩宽度。
%5d 表⽰这个占位符的宽度⾄少为5位。如果不满5位,对应的值的前⾯会添加空格。
输出的值默认是右对⻬,即输出内容前⾯会有空格;左对⻬(%后加-),%-5d
对于⼩数,这个限定符会限制所有数字的最⼩显⽰宽度。
%12f 表⽰输出的浮点数最少要占据12位。由于⼩数的默认显⽰精度是⼩数点后6位,
所以 123.45 输出结果的头部会添加2个空格。
9.1.4.2 限定⼩数位数( 可以与限定宽度占位符,结合使⽤
输出⼩数时,有时希望限定⼩数的位数。举例来说,希望⼩数点后⾯只保留两位,占位符可以写成 %.2f 。  %6.2f 表⽰输出字符串最⼩宽度为6,⼩数位数为2。
9.1.4.4 输出部分字符串
%s 占位符⽤来输出字符串,默认是全部输出。如果只想输出开头的部分,可以⽤ %.[m]s 指定输出 的⻓度,其中 [m] 代表⼀个数字,表⽰所要输出的⻓度。
9.2 scanf
当我们有了变量,我们需要给变量输⼊值就可以使⽤ scanf 函数,如果需要将变量的值输出在屏幕上 的时候可以使⽤ prinf 函数,
scanf() 的语法跟 printf() 类似。
9.2.1 基本⽤法
scanf() 函数⽤于读取⽤⼾的键盘输⼊
程序运⾏到这个语句时,会停下来,等待⽤⼾从键盘输⼊。
⽤⼾输⼊数据、按下回⻋键后, scanf() 就会处理⽤⼾的输⼊,将其存⼊变量。
它的原型定义在头⽂件 stdio.h
scanf() 的语法跟 printf() 类似。
scanf("%d", &i);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xiaoxiong_C++

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

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

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

打赏作者

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

抵扣说明:

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

余额充值