1.全局变量
和静态变量
存放在此
2.全局区还包含了常量区,字符串常量
和其他常量(const修饰的变量
,也叫全局常量)存放在此
3.该区域的数据在程序结束后由操作系统释放
示例代码:
#include <iostream>
using namespace std;
//全局变量
int g_a = 10;
int g_b = 10;
//const修饰的全局变量
const int c_g_a = 10;
const int c_g_b = 10;
int main()
{
//局部变量
int a = 10;
int b = 10;
cout << "局部变量a的地址为: " << &a << endl;
cout << "局部变量b的地址为: " << &b << endl;
//字符串常量
cout << "字符串常量的地址为:" << &("hello world") << endl;
//全局变量
cout << "全局变量g\_a的地址为: " << &g_a << endl;
cout << "全局变量g\_b的地址为: " << &g_b << endl;
//静态变量 在普通的变量前面加static,属于静态变量
static int s_a = 10;
static int s_b = 10;
cout << "静态变量s\_a的地址为: " << &s_a << endl;
cout << "静态变量s\_b的地址为: " << &s_b << endl;
//const修饰的变量
//1.const修饰的全局变量
cout << "const修饰全局变量c\_g\_a的地址为: " << &c_g_a << endl;
cout << "const修饰全局变量c\_g\_b的地址为: " << &c_g_b << endl;
//2.const修饰的局部变量
const int c_l_a = 10;
const int c_l_b = 10;
cout << "const修饰局部变量c\_l\_a的地址为: " << &c_l_a << endl;
cout << "const修饰局部变量c\_l\_b的地址为: " << &c_l_b << endl;
return 0;
}
运行结果:
同样也验证了全局区存放全局变量,静态变量,字符串常量和const修饰的局部变量
3.栈区
由编译器自动分配释放,存放函数的参数值
,局部变量
等
注意:不能返回局部变量的地址,栈区开辟的数据由编译器自动释放
示例代码:
#include <iostream>
using namespace std;
int \*fun()
{
int a = 10;
return &a;
}
int main()
{
int \*p = fun();
cout << \*p << endl;
cout << \*p << endl;
cout << \*p << endl;
return 0;
}
运行结果:
注意到:第一次可以打印正确的数字是因为编译器给我们做了一次保留,怕是误操作。但是第二次数据就不会保存,自动释放了。
4.堆区
由程序员分配释放,若程序员不释放,程序结束后由操作系统回收
在C语言中使用malloc来进行分配
在c++中使用关键字new来开辟空间
示例代码:
#include <iostream>
using namespace std;
int \*fun()
{
int \*p = new int(10) ;
return p;
}
int main()
{
int \*a = fun();
cout << \*a << endl;
cout << \*a << endl;
cout << \*a << endl;
return 0;
}
运行结果:
注意该程序只是测试程序,还要进行释放,使用关键字delete
语句:delete p;
结尾附上一道面试题:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)
最后
资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!
nity.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt=“img” style=“zoom: 67%;” />
最后
资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!