776 字
4 分钟
C++基础知识0303
2023-03-03

include头文件的顺序以及双引号""和尖括号<>的区别和查找路径#

(1)include头文件的引用顺序#

如果在a.h中声明了一个在b.h中定义的变量,那么在a.c中引用两个头文件的时候,必须a.h在b.h之后,否则报错变量类型未声明

(2)双引用号和尖括号的区别#

编译的预处理阶段查找头文件的路径不一样

“”查找顺序:当前头文件目录->编译器设置的头文件路径(编译器可使用-I显式指定搜索路径)->系统变量CPLUS_ INCLUDE PATH/C_ INCLUDE PATH 指定的头文件路径 <>查找顺序: 编译器设置的头文件路径->系统变量CPLUS_ INCLUDE PATH/C_ INCLUDE PATH 指定的头文件路径

指针和引用的区别#

引用是为对象起的别名,必须被初始化,与变量绑定到一起,且将一直绑定在一起。

1、引用不可以为空,但指针可以为空。

2、引用不可以改变指向,对一个对象”至死不渝”;但是指针可以改变指向,而指向其它对象。

3、引用的大小是所指向的变量的大小,因为引用只是一个别名而已;指针是指针本身的大小,4个字节。

4、引用比指针使用起来形式上更漂亮,使用引用指向的内容时可以之间用引用变量名,而不像指针一样要使用*;定义引用的时候也不用像指针一样使用&取址。

5、引用比指针更安全。由于不存在空引用,并且引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用,因此引用很安全。对于指针来说,它可以随时指向别的对象,并且可以不被初始化,或为NULL,所以不安全。const指针虽然不能改变指向,但仍然存在空指针,并且有可能产生野指针(即多个指针指向一块内存,free掉一个指针之后,别的指针就成了野指针)。

简述C++ 从代码到可执行二进制文件的过程#

一个c++程序从代码到可执行文件,有四个过程,预编译,编译,汇编,链接 (预编汇链) 预编译:展开所有头文件,宏置换,去掉注释,条件编译(对#ifend #endif判断) 编译:将代码转换为汇编代码 汇编:把汇编语言翻译成机器指令(代码段:主要包含的是程序的指令,不可写,可读,可执行。数据段:存放程序中用到的各种全局变量或者静态数据。可读可写可执行) 链接: 合并各个.obj 文件,合并符号表,解析符号表是否重定义 符号地址重定位 生成.exe文件

什么是函数指针,如何定义函数指针,有什么使用场景#

https://blog.csdn.net/weixin_48853167/article/details/117450614

16.什么是宏函数#

https://www.cnblogs.com/bytebee/articles/8205697.html

野指针#

https://blog.csdn.net/l477918269/article/details/89949858

C++基础知识0303
https://fuwari.cbba.top/posts/c基础知识0303/
作者
Chen_Feng
发布于
2023-03-03
许可协议
CC BY-NC-SA 4.0