零基础快速掌握——C语言基础【数据类型】【运算符】
1. 数据类型的分类
2.语言中的基本数据类型
类型 | 字节数 | 类型 | 字节数 |
longlong | 8 | ||
long | 8(4)32位 | double | 8 |
int | 4 | float | 4 |
short | 2 | ||
char | 1 |
3. 数据类型转换
0、整数的默认类型是int ,小数的默认类型是double
1、自动类型转换:由字节低的数据类型转换为字节高的数据类型时,系统会自动转换
char -> short ->int ->float ->double
2、强制类型转换:由高字节的数据类型,转换为低字节的数据类型时,需要程序员手动强转
转换格式:(要转换成的类型)要转换的数据
例如:(int)5.9---5
此时可能会涉及数据的丢失或者是真
4. 常量
在程序中不可更改的量称为常量
5. 变量
在程序运行中,能够更改的量被称为变量,不同类型定义出来的变量,所占内存空间大小不同
变量的本质,就是内存的存储空间,是一个能够存储数据的容器
6. 输出格式化的控制符
%[-][m][.n] f
-:表示输出的数据左对齐 没有-时默认右对齐
m:输出数据的最小宽度
.n:表示输出保留小数点的个数
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc,const char *argv[])
{int num = 520;printf("%d\n",num);//520printf("%5d\n",num);//整个格式输出占5个单位的宽度右对齐printf("%-5d\n",num);//整个格式输出占5个单位的宽度 左对齐printf("%05d\n",num);//00520整个格式输出占5个单位的宽度 宽度不够的前面补0}
7. c 语言中运算符
7.1 运算符
✳ 注意 : 字节大小运算符sizeof ()
7.2 运算符优先级
练习题:
作业:将123的第三位取反 并打印取反后的值 0111 1011
拓展作业:将123的第三、四、五位取反 并打印取反后的值
//123的二进制 0111 1011 ----》0111 0011
//0111 1011 123
//0000 1000 8
//0111 0011 115# 初始数字
char x = 123;
char x2 = 8; # 创建掩码,将第 3 位置为 1
char mask = 1 << 3; // 1 << 3 等价于 8,二进制是 0000 1000# 使用异或操作将第 3 位取反
char result = x ^ mask //result = x^x2# 输出结果
print(result)
# 初始数字
char x = 123# 创建掩码,取反第 3 位、4 位和5 位
char mask = (1 << 3) | (1 << 4) | (1 << 5); # 掩码为 0001 1100,十进制为 28
// 0000 1000 0001 0000 0010 0000------>0011 1000
//三个值进行或运算
//0000 1000
//0001 0000
//0010 0000
//0011 1000 ---上面的掩码 mask
# 使用异或操作将第 3 位、第 4 位和第 5 位取反
char result = x ^ mask# 输出结果
print(result)
作业3:定义一个整形变量:int num = 123; 将该数据组成倒序数据即:num = 321,然后输出结果
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{int num=123;printf("%d\n",num);int g=num/1%10*100;int s=num/10%10*10;int b=num/100%10;num=b+s+g;printf("num=%d\n",num);return 0;
}
作业4:定义一个变量存储年份:int year = 2023; 通过程序判断该年份是否为闰年,如果是闰年,则输出“闰年”,否则输出"平年";
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{int year=2023;printf("%d\n",year);printf(year%400==0||year%4==0&&year%100!=0?"闰年\n":"平年\n");return 0;
}