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> <数据类型> <变量名>; //static int a;

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

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

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

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

动态存储区:

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,800评论 1 32
  • 几种语言的特性 汇编程序:将汇编语言源程序翻译成目标程序编译程序:将高级语言源程序翻译成目标程序解释程序:将高级语...
    囊萤映雪的萤阅读 8,025评论 1 5
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 12,373评论 0 27
  • 略略略好久没有更新了,但并不是我没写文章哦,实再是有些忙。 敲黑板!!! 最重要的是:“我在准备6月2号的普通话证...
    佼佼者脾气很差阅读 7,026评论 10 16
  • 披星戴月地奔波 / 只为一扇窗 / 当你迷失在路上能够看见那灯光 / 不知不觉把他乡 / 当做了故乡 ...
    老孙家的大彬阅读 3,043评论 1 0