内存分区

堆区-可读可写
栈区-可读可写 &

局部变量、

全局区-可读可写 &

全局变量(所有文件可用)、静态局部变量(static:当前文件可用)

文字常量-只读
代码区-只读

二进制代码、

char arr[128] = "hello world";  // 这种写法是将字符串全部存在了栈区
char *p = "hello world";    // 这种是将字符串存在了文字常量区,而将h的地址作为指针存在了栈区

编译四阶段

预处理 -> 编译 -> 汇编 -> 链接
宏函数在预处理阶段进行替换;

*p 定义指针变量,指针变量中存储的是内存地址,不是普通的数值;
*p 取p这个指针变量指向地址中的内容;
&b 取地址;

int *arr[5];      // 指针数组,arr数组中五个元素都是指针;
int (*arr)[5];    // 数组指针,arr为指针变量,保存的是数组的首地址;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 内存分区 堆区 (Heap) 特点:动态申请 可读可写 栈区 (Stack) 特点:由系统进行内存的管理。主要存放...
    Superman168阅读 493评论 0 0
  • 运行之前 编译一个C程序会经历下面几个阶段: 预处理:宏定义展开,头文件展开,条件编译(#ifdef之类),不检查...
    码无不至阅读 790评论 0 1
  • Tagger point 管理小对象,NSDate、NSNumber 内部的实现?加密-解密算法,内存地址+值,存...
    萧修阅读 277评论 0 0
  • c++程序执行时,有如下图的4个区域 代码区,存放函数体的二进制代码,由操作系统管理 全局区,存放全局变量和静态变...
    ca8519be679b阅读 325评论 0 0
  • 一个程序将操作系统分配给其运行的内存块分为4个区域:1、 代码区:存放程序各个函数的代码块2、 全局数据区:存放全...
    c7shuai阅读 272评论 0 0