码迷,mamicode.com
首页 > 其他好文 > 详细

内存四区

时间:2017-03-27 11:08:27      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:bcd   clu   void   子函数   代码   主函数   get   oid   include   

#include<stdio.h>


//内存四区:栈区(变量),堆区,全局区(数据),代码区
//主函数的P1和子函数的p1完全不同
//指针指向谁就把谁的地址赋给指针
//指针变量 和 他所指向的内存空间是两个不同的概念
char * getStr1()
{
char *p1 = "abcdefg2";
return p1;
} //当函数运行完成就释放内存空间(在栈上分配内存)

char *getStr2()
{
//char *p2 = "abcdefg22"; //数据不同,则分配不同的内存空间
char *p2 = "abcdefg2"; //编译器把数据放在全局区,如果数据相同,内存空间合成一个
return p2; //p2 参数压栈
}

int main(void)
{
char *p1 = NULL;
char *p2 = NULL;
p1 = getStr1();
p2 = getStr2();


//打印p1 p2所指向内存空间的数据
printf("p1: %s, p2: %s\n", p1, p2);


//打印p1 p2 的值
printf("p1: %d, p2: %d\n", p1, p2); //数据相同,则地址相同。数据不同,则地址不同

return 0;
}

内存四区

标签:bcd   clu   void   子函数   代码   主函数   get   oid   include   

原文地址:http://www.cnblogs.com/Liu-Jing/p/6625257.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!