c语言中关于变量存储类别的心得
2015-05-05 10:58
204 查看
<span style="font-family: 'Microsoft Yahei', 'Hiragino Sans GB', Helvetica, 'Helvetica Neue', 微软雅黑, Tahoma, Arial, sans-serif; line-height: 20.7999992370605px; background-color: rgb(226, 228, 235);">C语言中存储类别可以分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern)。</span>
1.首先是auto,用它定义的自动变量,可省略,例如
auto int a=int a
2.static为修饰的为静态变量,如果定义在函数内部的,称之为静态局部变量;如果定义在函数外部,称之为静态外部变量,比如以下代码:
#include <stdio.h> void fn() { static int x=0; x++; printf("fn:x=%d\n",x); } int main() { int i; for(i=0;i<10;i++) { fn(); }
<span style="color:#1f2426;font-family: Arial, Helvetica, sans-serif;">}</span>
<span style="color:#1f2426;font-family: Arial, Helvetica, sans-serif;">输出的结果是1 2 3 4···· 如果去掉static,则结果为1 1 1 1··· 所以静态变量</span><span style="font-family: 'Microsoft Yahei', 'Hiragino Sans GB', Helvetica, 'Helvetica Neue', 微软雅黑, Tahoma, Arial, sans-serif; font-size: 13px; line-height: 20.7999992370605px; background-color: rgb(226, 228, 235);">在</span><span style="color:#ff0000;font-family: Arial, Helvetica, sans-serif;"><strong><span style="font-family: 'Microsoft Yahei', 'Hiragino Sans GB', Helvetica, 'Helvetica Neue', 微软雅黑, Tahoma, Arial, sans-serif; font-size: 13px; line-height: 20.7999992370605px; background-color: rgb(226, 228, 235);">编译时赋初值,即</span><span style="font-family: 'Microsoft Yahei', 'Hiragino Sans GB', Helvetica, 'Helvetica Neue', 微软雅黑, Tahoma, Arial, sans-serif; font-size: 13px; line-height: 20.7999992370605px; background-color: rgb(226, 228, 235);">只赋初值一次</span></strong></span>
3.用extern声明的的变量是外部变量,外部变量的意义是某函数可以调用在该函数之后定义的变量。如:
#include <stdio.h> void fn() { static int x = 1; //定义静态局部变量 x*=2; printf("x=%d\n",x); } int main() { int i; for(i=0;i<5;i++) { fn(); } extern int x; //调用外部变量 printf("x=%d\n",x); return 0; } int x=100;此程序输出结果为2 4 8 16 32 100,若去掉static,则输出结果为2 2 2 2 2 100,若去掉extern,则输出结果为2 4 8 16 32 0.
ps:最后一组结果在code::blocks上输出为2 4 6 8 32 40,不知道为什么,先就到这里吧.
相关文章推荐
- C语言变量的存储类别
- C语言变量的存储类别
- C语言变量的存储类别
- 黑马程序员——C语言中变量的存储类别
- C语言变量的存储类别
- c语言 变量的存储类别以及对应的内存分配?
- C语言变量的存储类别
- C语言温习笔记之变量的存储类别
- C语言中变量的存储类别及其存储方式
- C语言变量的存储类别专题讲座-学C者必看
- C语言中的变量访问控制和存储类别
- 关于C语言中存储类别、链接的总结
- C语言中局部变量和全局变量变量的存储类别(static,extern,auto,register)
- C语言中局部变量和全局变量的存储类别(static,extern,auto,register)
- 关于c语言变量的存储及内存的分配
- C语言变量的存储类别
- C语言:变量存储类别
- C语言变量存储类别和内存四区
- C语言中局部变量和全局变量变量的存储类别(static,extern,auto,register)
- C语言及程序设计提高例程-12 变量的存储类别