第二章.C语言数据类型和变量
前言
本人是一名在校通信专业的学生,本文章主要用途为记录自己在C语言学习中的笔记
一、数据类型介绍
C语言提供了丰富的数据类型来描述生活中的各种数据。所以在定义变量时需要指定变量的类型,如:float用来表述小数,int用来表述整数。
为什么在计算机运算时要指定数据的类型呢?
答:在数学中,数值是不区分类型的,因为数值的运算是绝对准确的。但在计算机中,数据是存放在存储单元内的,它是具体存在的。而类型,就是对数据分配存储单元的安排,包括存储单元的长度以及数据的存储形式。不同的类型分配不同的长度和存储形式。
数据类型分为两类:内置类型和自定义类型
本章仅学习内置数据类型
二、内置数据类型
内置数据类型包括:字符、整型、浮点型及布尔类型
1.char - 字符型
char - 字符类型 用来表示字符的数据类型
signed 和 unsigned 是 一个种用于修饰字符型和整型类型的关键字
signed - 表示一个类型带有正负号,包含负值
unsigned - 表示该类型不带有正负号,不包含负值
[signed] char 有符号的char
unsigned char 无符号的char
2.int - 整型
int - 整型
每一种整型都分有signed和unsigned
short [int] - 短整型 方框里的可以省略不写
long - 长整型
long long - 更长的整型
3.float - 浮点型
float - 单精度浮点型(小数点可以浮动的)
double - 双精度浮点型
long double - 更高的双精度浮点型
4.布尔类型
布尔类型
C语言中表示真和假 0-表示假 非0-表示真 (例如1,2,3…)
_Bool - 布尔类型 要想使用布尔类型得包含头文件 #include<stdbool.>
#include <stdio.h>
#include <stdbool.h>
int main()
{
_Bool i = false; //true和false 真和假
if (i) //如果i为真 运行
printf("I like you");
else //否则为假 运行
printf("I hate you");
return 0;
}
5.signed和unsigned关键字
C 语⾔使⽤ signed 和 unsigned 关键字修饰字符型和整型类型的
int main() //默认int 就是 [signed] int
{
signed int temperature1 = 10; //signed关键字可以正负号(平时都省略)
signed int temperature2 = -10; //可负号
unsigned int age = 20; //只能正数
return 0;
}
三.变量
类型是为了创建变量
变量又分为常量(不变的值)和变量(会发生变化的值)
#include <stdio.h>
int main()
{
int weight;
float score;
short age; //变量的创建 一个类型 加 一个名字
int weight = 59; //创建变量的时候给予一个初始值,称为初始化
float score = 98.5f; //无f时系统会识别成double类型
}
1.变量的分类
变量的分类;分为全局变量和局部变量
#include <stdio.h>
int flag = 2023; //全局变量,在一个工程中随时使用 是在括号外面的变量
int main()
{
int flag = 0; //局部变量与全局变量的名称重复时,优先打印局部变量
{
int a = 10; //局部变量 仅在括号中使用,出了括号打印无效
printf("%d\n", a);
}
printf("%d\n", flag);
return 0;
}
最后输出的结果是:10和0
四.算术操作符
算术操作符有:+ - * / %
+:加法
-:减法
*:乘法
/:除法
%:取模(两个数相除的余数)
1.加法和减法
int main()
{
int num1 = 1 + 2;
printf("num1= %d\n", num1);
int num2 = 1 - 2;
printf("num2= %d\n", num2);
int num3 = num1 + num2;
printf("num3= %d\n", num3);
return 0;
}
2.乘法和除法
int main()
{
int n = 5;
n = (n / 20.0) * 100;
printf("n= %d\n", n);
return 0;
}
最后输出为:n = 25
3.取模
int main()
{
int a = 5/ 2;
int b = 5 % 2;
printf("a=%d\n", a);
printf("b=%d\n", b);
return 0;
}
最后输出为:a=2 b=1
补充: 关于初始化和赋值
#include <stdio.h>
int main()
{
int a = 3; //初始化
int b = 5;
int c = 0;
//c = b = a + 3; //连续赋值,从右往左依次赋值 (这种连续赋值尽量少用)
b = a + 3;
c = b;
return 0;
}
五.单目操作符 ++
前置++ :++a 用于自增1的操作 先+1,后使用
后置++:a++ 先使用,后+1
#include <stdio.h>
int main()
{
int a = 5;
int b = ++a; //先+1,后使用
printf("a=%d\n", a); //由于给a加了1之后 a变成了6
printf("b=%d\n", b); //使用时,a已经为6了
return 0;
}
最后输出结果为:a=6,b=6
int main()
{
int a = 5;
int b = a++; //先使用,后+1
printf("a=%d\n", a); //使用完之后+1,于是a就等于6了
printf("b=%d\n", b); //b先使用a,所以b=5
return 0;
}
最后输出为:a=6,b=5
总结
本章主要写了关于数据类型、变量分类及算术操作符、单目操作符的一些知识,其中还有许多需要补充的,由于目前未学习到,仅能先写一部分。在后面的学习中,会越发完善 并将之补全。