C++如何提高

接触C/C++有那么久了但是一直不敢说自己真的懂C语言了,感觉自己一直在C/C++的道路上划水飘。现在就给大家来介绍一下我学习C/C++的感受吧。大学的时候本来感觉跟着老师走就行,所以C语言一整本书学完之后都不知道学这个有什么用。以后找工作了应该如何运用到工作之中。C语言之后接着就是C++,学完C++也是一头雾水。之后接触到了qt,liunx,单片机原理之后才知道C/C++应该如何做项目,如何运用C/C++做项目。

C语言是除了汇编语言外最底层的语言,所以比起c++,java等语言外,c语言更接近机器的底层硬件。在此基础上,我们再往层次去想,我们编写的程序是在内存中去运行的,所以要更加懂c语言,就要知道c语言中的程序是如何在计算机内存中分布的。

现在我们来说说C语言如何提高。首先我们需要了解变量与内存管理。

变量分为局部变量与全局变量:

局部变量:就是在函数内部定义的变量.局部变量只在本函数内有效,也就是只能在本函数内使用它.

全局变量:就是在所有函数(包括main函数)外部定义的变量.全局变量在整个源文件中有效,故全局变量可以在源文件中的任何地方使用.

变量的特性:静态存储期,空链接,代码块作用域

存储期 : 也称为生存期,表示变量在内存中存在的时间的长短.

静态存储期 :在程序编译时就分配内存空间并保持不变,程序执行结束后才释放.

动态存储期 :在程序执行并使用该变量的时候分配内存空间,使用完毕立即释放.

链接点 : 表示变量能在哪些范围内使用.

内部链接 : 只能在源文件内部使用.

外部链接 : 能在源文件内部和外部文件中使用.

空连接 : 只能在代码块内(函数内部)使用.

作用域 : 表示变量在哪些范围内起作用,由链接点决定.

局部变量 : 定义与声明不区分(定义之后可以直接使用).

自动变量 : 使用auto关键字修饰存储类型,一般缺省.

静态局部变量 : 使用static关键字修饰存储类型.

定义声明 : <数据类型> <变量名>; //static int a;

寄存器变量 : 使用register关键字修饰存储类型。register是一个请求命令,暗示该变量将被频繁使用,请求保存在cpu寄存器中.用register修饰的变量的值必须是单个值,数据。长度小于或等于整型数据长度。因为变量的值可能存放在寄存器中,所以不能使用取地址符'&'获取该变量的地址。

C语言中定义4个内存区间: 代码区,静态存储区,栈区,堆区

代码区 : 用于存放程序中的代码,属性只读.

静态存储区: 用于存放普通全局变量,静态变量(静态全局变量,静态局部变量),以及常量.

动态存储区:

栈区 : 用于存放普通局部变量.

堆区 : 由程序员自行决定申请和释放的内存空间,称之为堆区.

典型的例子就是定义结构体指针后,需要使用malloc()申请结构体指针指向的内存空间.

这些弄懂之后就可以从:内存分区、函数调用模块、指针高级部分内容、函数指针与回调函数、数据结构与链表、递归函数、数据结构与算法、结构封装和设计。

如果各位对C语言感兴趣的话可以来和我一起学习C语言,希望大家能在将来都成为C语言大佬。我还在菜鸟的道路上奋力爬行。小编有资料的话会第一时间分享给大家。微信关注公众号C语言进阶之旅就可以免费领取资料了哦

你可能感兴趣的:(C++如何提高)