1.数据存储区定义及其特点
1.1堆区
由malloc动态分配内存,free释放的存储在堆区,由new分配,delete释放的存储在自由存储区,自由存储区一般来讲不仅包括堆区,还可能包括全局存储区的未分配部分。
1.2栈区
就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。栈区大小固定,一般为1M,地址向下扩展。(百度参考)
1.3静态数据区
全局变量和静态变量被分配到同一块内存中,都在全局数据区,在以前的 C 语言中,全局变量又分为初始化的和未初始化的(初始化的全局变量和静态变量在一块区域,未初始化的全局变量与静态变量在相邻的另一块区域,同时未被初始化的对象存储区可以通过 void* 来访问和操纵,程序结束后由系统自行释放),在 C++ 里面没有这个区分了,他们共同占用同一块内存区。
1.4代码段
是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。代码段是存放了程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们就可以使用同一个代码段。(百度参考)
堆区是自己生成,自己释放;栈区,全局数据区,代码段是由系统生成,系统释放。
2.数据的基本算法
+,-,*,/(由此做了个简易的计算器)
3.比较运算符
( )?( ):( )
?前面为真执行?后第一个( )表达式,反之执行第二个( )表达式内容
4.位运算
4.1 <<
a<<b 即是a左移b位(在二进制表示下)
4.2 >>
a>>b 即是a右移b位(在二进制表示下)
5.逗号表达式
a=(x=3,4+5,x+4)
表达式的值等于最后一个逗号后的表达式的值,即是a=x+4=3+4=7
6.数据的存储类型
6.1 const
其值不想修改,只读变量
6.2 register
直接将值储存在寄存器中,并且值不能超过cpu的最大值
6.3 extern
声明全局变量
6.4 volatile
每个值从内存取。
例如:
volatile int i=10;
j=i;
j的值从内存中取。
6.5 auto
动态分配内存,数据存储在动态存储区,函数调用结束自动释放这些存储空间。
6.6 static
声明静态变量,相对应的类型储存在静态数据区,一般数据只初始化一次,具有记忆功能。

Linux下c的进一步学习相关推荐

  1. linux下rpm,yum学习

    linux下RPM及yum学习 linux中程序管理程序主要分为两类 dpkg(Debian Packager):debian,Ubuntu,Knoppix         rpm(Redhat Pa ...

  2. linux下的加密解密学习

    linux下的加密解密学习 加密/解密:         加密协议:加密解密使用同一秘钥:3des,aes         公钥加密:公钥私钥对         数字签名,密钥交换          ...

  3. LINUX下USB1.1设备学习小记(2)_协…

    LINUX下USB1.1设备学习小记(2)_协议 (2009-03-27 14:40) 分类: 文章转载 USB协议: 先看USB接口 可以看出,在USB使用了4根线,分别为电源线,地线,信号线和差分 ...

  4. 【转载】Linux下套接字学习

    感觉这个系列还不错,学习一下. 先看的是第三篇: http://blog.csdn.net/gatieme/article/details/46334337 < Linux下套接字详解(三)-- ...

  5. Linux下的ELF可执行文件学习总结

    Linux下的ELF可执行文件的格式解析 http://blog.csdn.net/xuchao1229/article/details/8915831 目录(?)[+] ELF(Executable ...

  6. Linux下高级C编程(学习总结)

    Linux下高级C编程 第一章 unix/linux系统的基本概念 第二章 unix/linux系统下的编程基础和开发方式 第三章 unix/linux系统下的内存管理 第四章 unix/linux系 ...

  7. linux下nginx软件的学习

    参考博客 1.nginx是什么 nginx是一个开源的,支持高性能,高并发的web服务和代理服务软件.它是开源的软件. nginx比它大哥apache性能改进许多,nginx占用的系统资源更少,支持更 ...

  8. Linux下进程通信知识点学习笔记(一)

    4种主要事件导致进程创建: 系统的初始化: 执行了正在运行的进程所调用的进程创建系统调用: 用户请求创建一个进程: 一个批处理作业的初始化: 进程的终止: 正常退出: 出错退: 严重错误: 被其他进程 ...

  9. usb linux 内核,Linux下USB内核之学习笔记

    Linux下USB子系统软件结构为 USB 内核(USB驱动,USBD )处于系统的中心,对于它进行研究是能够进行USB驱动开发(包括客户驱动和主机驱动)的第一步.它为客户端驱动和主机控制器驱动提供了 ...

最新文章

  1. CentOS服务器上的 git 包版本控制
  2. 仿win8磁贴界面以及功能
  3. Oracle海量数据优化-01分区的渊源
  4. Windows下卸载Oracle
  5. SAP CRM Product hierarchy,Category和Application的三个问题
  6. 创建api java,如何创建静态Java API?
  7. script地下状态栏效果
  8. java程序运行没有结果,求助啊!我刚学java 下面的程序一直运行但是没结果!!!...
  9. Oracle与SQL Server的语法区别——Oracle数据库学习
  10. 移动应用的全新方式:超级app+轻应用
  11. E4A双击返回键退出程序源码
  12. Android原生蓝牙音乐绑定、Sink端play流程
  13. 手机丢了微信聊天记录怎么恢复?别担心,教你一招找回
  14. 解决jenkins发版报错:JAR will be empty - no content was marked for inclusion
  15. 读《一个程序员的奋斗史》有感
  16. 安卓开发之SoundPool播放音效
  17. 汽车零部件ELV测试标准
  18. 通灵学院|游戏设计研习8:游戏空间设计★(800字)
  19. Spring @Autowired 知其然定需知其所以然 第一弹
  20. ARM标准汇编与GNU汇编

热门文章

  1. 网络模型和TCP协议族
  2. Python基础学习四 函数
  3. 代码生成工具之Winform查询列表界面生成
  4. java 监听器实现原理
  5. 算法7-10:拓扑排序
  6. Linux下学C语言开发要学些什么‏
  7. Eclipse异常关闭启动不了的问题
  8. win10虚拟机dhcp服务器设置,win10 dhcp服务器设置方法
  9. java 导出word换行_Java 导出数据库表信息生成Word文档
  10. MySQL5.7 版本的安装、配置