内存四区---静态存储区(全局区)的理解

这里写图片描述

Tips:
1、指针指向谁,就把谁的地址赋给指针。
2、指针变量和他所指向的内存空间变量是不同的概念。
3、函数中的局部变量在栈区,函数运行完就被析构掉了,对应的内存区域也就没有了。
4、C++编译器的优化:会对语法、句法进行分析,对同一个内容会分配同一块内存区域(即内存编号相同),不同内容则存储在不同的内存单元中。
地址:0xaa11 0xaa16
内容:“abcdefg2” “abcdefg22”
5、函数中的局部变量被析构了,但是可以通过函数返回值传给了主函数中的局部变量。

#include "stdlib.h"
#include "stdio.h"
#include "string.h"


char * getStr1()
{
    char *p1="abcdefg2";
    return p1;
}//函数执行完,p1就被析构了,应为p1存储在栈区

char *getStr2()
{
    char *p2="abcdefg2";
    return p2;
}

void main()
{
    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);

    system("pause");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值