c语言基础知识点及思考(上)

简介: c语言基础知识点及思考

1.

typedef

可以使类型重命名,使复杂的类型简单化

,就是简写,并且可以重定义,重定义前后的名字都可以使用。

typedef int in;

in mun1;

等价于

int num1;

2.

内存的分布:栈区、堆区、静态区

3.

static:静态的

用法一:

static修饰局部变量

本质:使变量的存储位置发生了变化

注意:变量的作用域没变,无法出作用域使用 // 延长的是生命周期

局部变量:每次进入函数会重新创建,出了函数就会销毁(将空间还给操作系统

存储在栈区,进入作用域自动创建,出作用域自动销毁

修饰之后:

局部变量出了作用域不会回收,延长局部变量的生命周期,如果反复调用函数,会出现累积的效果

存储在静态区,直到程序结束,变量才会被回收 // static所在代码在编译期间已分配地址,其代码行在运行时不再执行,即其地址不再变化

用法二:

static修饰全局变量

修饰后:

全局变量无法在其他源文件中被引用

使其只能在其所在的源文件内部使用

即使其外部链接属性变为内部链接属性

用法三:

static修饰函数

函数不存在生命周期

修饰前:函数具有外部链接属性

修饰后:外部链接属性变为内部链接属性

函数只能在其所在的源文件内部使用,其他源文件无法使用

这样就能设多个函数,并且名字一样也不会冲突

4.

编译器在编译的时候,每个.c文件单独进行编译 生成自己的目标文件 如:text.obj,目标文件和链接库一起(链接库如库函数需要静态库之类的,初步认识即可)经过链接器生成可执行程序

引用全局变量时,是在链接器中引用,因为全局变量具有外部链接属性

格式:

extern+字符类型+变量

如:

extern int a;

5.

生成解决方案:编译+链接

生成了.exe文件,即可执行程序  存储在Debug文件中

6.

寄存器:register

电脑上存储数据时可以存在:

寄存器:字节 有几十个

高速缓存:128Mb

内存:8G/16G

硬盘:500G/1T

网盘:1T/2T

大小关系如下:

当某个变量会被频繁大量使用可以用register

格式:

register int a = 10;

register:建议将变量a放在寄存器中

由编译器决定是否放在寄存器中

提示:

对于现在的编译器来说,即使没有register,编译器也会根据实际情况将其放入寄存器中

7.

#define定义常量

格式:

#define A 100

含义:只要出现A,其内容就是10

也可以定义字符串、字符,如:

#define ARR “abc”

8.

#define定义宏

格式:

#define MAX(x,y)(x>y?x:y)

(x,y)为参数

(x>y?x:y)为宏体

MAX(x,y)被替换为(x>y?x:y)

//

宏和函数的区别是什么

相关文章
|
7月前
|
C语言
C语言初阶⑧(结构体)知识点和笔试题
C语言初阶⑧(结构体)知识点和笔试题
70 0
|
2月前
|
C语言
C语言学习笔记-知识点总结上
C语言学习笔记-知识点总结上
81 1
|
7月前
|
编译器 C语言
C语言进阶⑪(指针上)(知识点和对应练习)回调函数模拟实现qsort。(下)
C语言进阶⑪(指针上)(知识点和对应练习)回调函数模拟实现qsort。
43 0
|
7月前
|
存储 编译器 C语言
C语言初阶⑦(指针初阶)知识点+笔试题(上)
C语言初阶⑦(指针初阶)知识点+笔试题
42 0
|
7月前
|
算法 程序员 编译器
C语言初阶③(函数)知识点+编程作业(递归模拟strlen,pow)
C语言初阶③(函数)知识点+编程作业(递归模拟strlen,pow)
49 0
|
5月前
|
存储 编译器 C语言
|
6月前
|
编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
50 3
|
6月前
|
存储 编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
42 1
|
5月前
|
前端开发 C语言
C语言08----注释扩展知识点,注释快捷键:ctrl+k,ctrl + C,取消快捷键 ctrl + K,ctrl + U
C语言08----注释扩展知识点,注释快捷键:ctrl+k,ctrl + C,取消快捷键 ctrl + K,ctrl + U
|
6月前
|
C语言
C语言----关于二维数组传参的本质相关的知识点(数组指针、指针数组)
C语言----关于二维数组传参的本质相关的知识点(数组指针、指针数组)