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/C++感兴趣的话,本小编这里准备了一大堆的学习资料可以免费分享给有需要的朋友们,学习群:前面八七三,中间五二一,后面八零三。连起来就可进群然后免费领取一份学习资料哦!!!

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

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

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

动态存储区:

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

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

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191016A0RC5R00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券