C和指针之auto和内存栈和register关键字
【摘要】 1、auto
在C代码中每个函数都有其生命周期(也称作用域),在函数生命周期中声明的变量通常叫做局部变量,也叫自动变量。例如:
复制代码代码如下:
int chenyu(){ int a = 10; // auto int a = 10; return 0; }
整型变量a在fun函数内声明,其作用域为chen...
1、auto
在C代码中每个函数都有其生命周期(也称作用域),在函数生命周期中声明的变量通常叫做局部变量,也叫自动变量。例如:
复制代码代码如下:
复制代码代码如下:
-
int chenyu(){
-
int a = 10; // auto int a = 10;
-
return 0;
-
}
整型变量a在fun函数内声明,其作用域为chenyu函数内,在chenyu函数外面不能被引用,a变量为自动变量。也就是说编译器会有int a = 10之前会加上auto的关键字。
auto的出现意味着,当前变量的作用域为当前函数或代码段的局部变量,意味着当前变量会在 内存栈上进行分配。
2、内存栈
栈(我们知道先进后出的 特点)
栈: 在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不
文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。
原文链接:chenyu.blog.csdn.net/article/details/78545400
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)