经验总结
- 在语言中,没有所谓的对象和类,但他有结构体啊,这个结果里面,我可以存函数指针,然后还有变量,这样不是和C++的类完成一样的功能了吗。
- 在C语言中的结构体就是C++的类和对象,只不过,在C++中,对类有封装(就是public private和protected) 但是对于结构体没有所谓的封装。
- C++的类就是C语言的结构体,C++的对象就是C的结构体变量。
- 很多的C语言的编写的框架,有很多的结构体的嵌套,那么这些结构体的嵌套,其实就是我们C++中类的继承。
- 平时说的 “接口啦” “接口的封装和设计”----> 就是 我们的函数,就是别人给你 函数名字,然后你知道函数的作用和传的参数的类型,以及每个参数代表的含义,然后直接调用,这个就是 ‘接口调用’。------API ,在JAVA就是函数
- C语言和C++的编译器是不一样的。
- 分文件:就是 一个.c文件配套一个.h文件 然后 实现一个功能
-
-
- 指针类型的变量 有几个* 就是几层的间接引用,你看,我的 int* p=&a,这个*p 就是先找到a的地址,然后按照a的地址,去找该地址下的内容。
- 函数传参,有数组类型,但是 为啥可以写成 int a[] --->是因为,在传参时,那个a就退化成一个指针了,为啥要退化成一个指针啊,为了高效,因为,你看,我想要传数组,那么int a【100】 就得把这个100个int数据给传过去,但那时 我要传这个数组的指针,仅仅时首地址,然后我再传一个数组的大小,这样,我是不是减少了调用函数时,传参的时间啊。(传参其实就是复制内容)
- 字符'\0' ASCII值是0 但是0的ASCII值是48,所以 strlen遇到'\0'就停止 但是 sizeof是测得数组的长度,包含'\0'和0 滑油输出时’%s'也是,遇到'\0'就停止输出了。
- 内联函数(在编译阶段处理)没有 压栈和出栈的耗时 宏函数(在预处理阶段处理) 也是没有 压栈和出栈耗时 所以 他们的高效在这里
-
-