1.C语言特点
C语言和C++都是强类型语言。
特点:
1.类型不可变:一旦定义,在整个程序中就不可以改变。
==ps:==强转:不是类型的转换,而是数值的变化。
2.所有的函数和变量,都必须先定义后使用。
Python是弱类型语言,如果赋值为10则是整型,如果赋值小数,则是浮点数。
2.编程过程
.c .cpp | 源文件(文本文件) |
---|---|
.i | 预编译文件(文本文件) |
.obj .o(linux系统下) | 目标文件(二进制文件) |
.exe | 可执行文件 |
1> .cpp -> .i是预编译过程(文本对文本):对#开头的一切进行处理,不进行语法词法语义的分析。只是一种引入或者替换或者判断而已,只对#产生效果
2> .i - >.obj 编译过程:类型的合法与否,语法语义词法的处理
3> .obj -> .exe 链接过程:lib是静态链接库 dll是动态链接库
可执行文件执行之后:系统会给可执行文件分配四个区域:
.code 代码段
.data 数据段
.heap 堆区
.stack 栈区
两个凡是(会有特例情况):凡是在函数外定义的全局变量都存放在数据区
凡是在函数内定义的局部变量都存放在栈区
比如:用静态关键字修饰全局变量,会发生变化
- [ ] 问题:为什么程序要分四个区域?
3.计算机组成
1.i7 i5说的是CPU i7-8750u 8就是第八代
2.mem 内存 8G 16G
3.显卡 显示适配器
集成显卡: Intel(R) UHD Graphics 630
独立显卡: NVIDIA GeForce GTX 1060
4.机械硬盘换成固态硬盘 固态的速度快且不容易坏
4.数据类型:char类型(L)
c语言中,把数据类型大体上分为了两类:基本数据类型和派生类型
基本数据类型:
char; short; int; long int; long long; float; double; long double; bool;
1 2 4 4 8 4 8 8 c11标准为12 1
如何理解字节:一个存储单元就是一字节=8位
- [ ] 问题:为什么一个存储单元是八位?
1.char类型存放的不是字符a,而是a的ascii值97亦是十六进制的61
2.可以把char类型看做mini整型 int类型可以做的事情,char也可以做
3.打印出来的是a的ascii值,而按照字符输出时,打印的是asii对应的字符
int main() {
char ch = 'a';
char ch = 97; //char ch = 0x61;
char ch = 'a'; //char=>mini_int 1字节整型
printf("%d\n", ch); //97
printf("%c\n", ch); //a
return 0;
}