摘要:本文主要向大家介绍了C/C++知识点之C语言基础10,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
本文主要向大家介绍了C/C++知识点之C语言基础10,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
栈区间:在函数内部声明的变量都存放在栈区间,比如int char 数组 结构体 指针,只管申请,系统会自动帮我回收,收回的时间是作用域结束之后,遵循的原则是"先进后出",int a = 10;
const int m =10;
printf("%p\n", &m);
printf("%p\n", &a);
堆区间:在五大区间中占用比例较大的区间,需要手动申请和手动释放,遵循的原则 "先进先出",堆区间空间的开辟是无序的,并且没有名字,所以我们需要一个栈区的指针来指向堆内存的数值。
int *b =malloc(sizeof(int ) *2);
printf("%p\n",b);
free(b);
静态区:存放全局变量或者静态变量,生命周期很长,一般到程序结束才释放,使用static修饰的变量,只初始化一次,默认值为0
static int c= 23;
printf("%p\n", &c);
void test3( ){
static int a =10; 第一次调用函数就赋初值,后面在调用函数这个语句就不会在允许。
a++;
printf("%d\n",a); //输出10,11,12
}
test3( );
test3( );
test3( );
常量区:我们平时遇到的常量都放到这里比如"myname",‘c‘,87,87.4
printf("%p\n",&"hello world ");
常量区变量不能被修改:
char *str ="iphone"; //字符指针指向常量区中字符串。
char str1[] ="iphone"; // 将常量区字符串拷贝到栈区的名称为str1的空间中。
str1[0] = ‘I‘; // 可以修改,编写代码的时候不会报错,但是在编译的时候就会报错。
str[0] = ‘I‘; //会报错。
所以我们一般这样写:const char *str ="...." 这样写的好处就是在很大的项目中,我们在修改常量区变量的值的时候会报错,可以立即处理,而不是在编译运行之后报错,才从几万行代码中查找错误的源头。
代码区:一般是函数存放在这里,需要编译。
void func( );
void func( ){
printf(...)‘
}
printf("%p\n" , func ); //传入函数名称。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号