比特鹏哥2-数据类型和变量【自用笔记】
- 1.数据类型介绍
- 字符,整型,浮点型,布尔类型
- 2.signed 和unsigned
- 3.数据类型的取值范围
- sizeof 展示字节大小--- 计算机中单位:字节
- 4.变量 常量
- 4.1 变量
- 创建变量(数据类型 变量名)
- 创建变量的时候可以进行初始化
- 变量:全局变量 /局部变量
- 变量的使用
- 变量的作用域和生命周期
- 4.2 常量
- const修饰的常变量
- define定义的标识符常量
- 枚举常量:可以一一列举
- 5.算术操作符:+、-、*、/(除法)、%(取模)---【双目操作符】
- 5.1 /(除法)
- 5.2 % (取模)
- 6.赋值操作符:=和复合赋值
- 7.单目操作符:++、--
- 7.1 ++:前置++,后置++
- 7.2 --:前置--,后置--
- 单目操作符的sizeof
- 单目操作符:~(按二进制位取反)
- 8.强制类型转换
- 9.scanf和printf介绍
1.数据类型介绍
%d -打印整型
%c -打印字符
%f -打印浮点数字 -小数
%s -打印字符串
%p -打印地址
字符,整型,浮点型,布尔类型
//字符:char
char ch='A';
printf ("%c\n",ch)
//整型 :短整型 整型 长整型
///短整型 short [int], [signed] short [int], unsigned short [int]
///整型 int , [signed] int, unsigned int
///长整型 long [int], [signed] long [int], unsigned long [int]
short int q = 5;
printf ("%d/n",q);
int w = 5;
printf ("%d/n",w);
long e= 5;
printf ("%d/n",e);
//浮点型 float,double,long double
float f = 5.0;
printf ("%f/n",f);
//字符型 char, [signed] char , unsigned char
float f = 5.0;
printf ("%f/n",f)
//布尔类型:0表示假 非0表示真
_Bool
布尔类型需要使用头文件 <stdbool.h>
布尔类型变量的取值:true 或者 false
2.signed 和unsigned
C语言使用 signed 和 unsigned 关键字修饰字符型和整型类型的。
signed 关键字,表示一个类型带有正负号,包含负值;
unsigned 关键字,表示该类型不带有正负号,只能表示零和正整数。unsigned int = int![请添加图片描述](https://img-blog.csdnimg.cn/1e9eb009883f41de880de0ee189a32ac.png)
3.数据类型的取值范围
sizeof 展示字节大小— 计算机中单位:字节
计算机中单位:字节
bit 比特位:存放一个二进制位
Byte 字节:1 byte = 8 bit
kb:1 kb =1024 bit
4.变量 常量
int age = 20;
float weight = 95.6f; //防止出现警告
4.1 变量
创建变量(数据类型 变量名)
创建变量的时候可以进行初始化
变量:全局变量 /局部变量
全局变量:定义在({})以外的变量
局部变量:定义在({})以内的变量------作用域:局部变量所在的局部范围
int a= 100; //全局变量
int main ()
{
int b = 20; //局部变量
}
/// 全局变量与局部变量可以同时存在,但当两者名字一样的,局部变量>全局变量。
// 建议全局变量与局部变量的名称尽量不要相同。
内存的三个区域: 栈区,堆区,静态区
变量的使用
//计算两个数的和
int num1 = 0;
int num2 = 0;
scanf("%d%d",&num1,&num2);
int sum = 0;// c语言规定,变量要定义在当前代码块的最前面【最好就是把这句话写到定义的位置】
sum =num1+num2;
printf("sum = %d/n",sum);
return 0;
//输入数据--使用输入函数
//输入函数: scanf("%变量类型”,&变量名称)
变量的作用域和生命周期
作用域:
全局变量的作用域是整个工程。
局部变量的作用域是变量所在的局部范围。
生命周期:
全局变量的生命周期:整个程序的生命周期
局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。
4.2 常量
const修饰的常变量
//const 后,num后续不可以修改。
const int num =4;
define定义的标识符常量
#define Max 10 //define定义的标识符常量
int main(){
printf("%d\n",MAX);
return 0;
}
枚举常量:可以一一列举
//性别:男,女,
//三原色:红、黄、蓝
//星期: 1,2,3,4,5,6,7
enum Sex
{
MALE;
FEMALE;
}
int main()
{
printf("%d\n",MALE);
printf("%d\n",FEAMALE);
return 0;
}
>>>>>>输出结果:
0
1
5.算术操作符:+、-、*、/(除法)、%(取模)—【双目操作符】
5.1 /(除法)
除法两端都是整数,结果也只能是整数
除法两端至少有一个hi浮点数,结果才会出现
5.2 % (取模)
运算符%表示求模运算,即返回两个整数相除的余值。这个运算符只能用于整数,不能用于浮点数。
负数求模的规则是,结果的正负号由第一个运算数的正负号决定。
6.赋值操作符:=和复合赋值
从右向左赋值
7.单目操作符:++、–
7.1 ++:前置++,后置++
前置++:先++,后使用
后置++:先使用,再++
//后置++:先使用,再++
int main(){
int a = 10;
int b = a++;
printf("a=%d b=%d\n",a,b);// a= 11 b=10
return 0;
}
//前置++:先++,后使用
int main(){
int a = 10;
int b = ++a;
printf("a=%d b=%d\n",a,b);// a= 11 b=11
return 0;
}
7.2 --:前置–,后置–
//后置--:先使用,再--
int main(){
int a = 10;
int b = a--;
printf("a=%d b=%d\n",a,b);// a= 9 b=10
return 0;
}
//前置--:先--,后使用
int main(){
int a = 10;
int b = --a;
printf("a=%d b=%d\n",a,b);// a= 9 b=9
return 0;
}
单目操作符的sizeof
单目操作符:~(按二进制位取反)
8.强制类型转换
()类型
int a =3.14 //a是int类型,3.14是double类型,两边类型不一样,会报警。
为了消除报警
int a =(int ) 3.14 //进行强制类型转换。
9.scanf和printf介绍
scanf
vs认为scanf函数不安全,考虑使用scanf_s替换
解决办法:
①在当前代码的第一个加上:#define _CRT SECURE NO_WARNINGS 1
②#define _CRT SECURE NO_WARNINGS 1
#define _CRT_SECURE_NO_WARNINGS 1