c语言中static unsigned int n=0;是什么意思?请大师指点迷津,学生有礼了。

如题所述

static 是数据储存类型

unsigned int数据类型

n 是变量名

n = 0 是对变量进行初赋值


其中 

数据储存类型:是指变量储存在计算机内存中什么位置以及该变量的生存期

                        比如:

                                static  说明变量存储在计算机中的静态存储区中

                                          且该变量在程序执行期间占用的内存不会被释放

                                          且该变量不可被其他文件调用

                                         (上述3点涉及知识较多,学到后面你会懂的)

注意:

static声明的变量是在编译时进行赋值而不是在程序执行过程中赋值

意思是说:如果在程序中涉及循环static声明的变量不会被重新赋值


比如;

for (i=1; i<=3; i++)
{
static int n = 3;
n = n + 1;
printf("%d\n", n);
}

结果为:

4

5

6


如果改成

for (i=1; i<=3; i++)
{
int n = 3;
n = n + 1;
printf("%d\n", n);
}

结果为:

4

4

4

这是因为              

static声明的变量是在编译时进行赋值而不是在程序执行过程中赋值,而编译只会进行一次


最后unsigned int 是数据类型,就是说变量在计算机中的储值方式,unsigned int是无符号整形的意思,无符号是指计算机不会把二进制数据的首位当做符号来处理,(2进制的最高位作为符号位‘1’为负‘0’为正)其本身储值方式与int相同    。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-20
你好:
其实就是定义了一个静态的无符号的整型变量n,初值为0。
至于是全局的还是局部的,看它声明的位置,若在所有函数之外的就是全局的,在函数之内的就是局部的。
静态关键词“static”意思为只声明一次,就算是在函数内部多次调用函数也只会声明一次,而变量一直存在可以随程序变化。
希望我的回答能帮助到你。本回答被提问者采纳
第2个回答  2013-12-20
static 静态 unsigned int无符号整型
静态无符号整型
static 修饰全局变量的话,只允许在本文件内使用,即作用域变小,生命周期不变。
修饰局部变量的话,生命周期延长,作用域不变(修饰的局部变量是放在全局区,不是放在栈区);
修饰函数的话,跟全局变量一样的原理,作用域变小。
static修饰的变量只会初始化一次。
unsigned:
无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的数据,比如16位系统中一个int能存储的数据的范围为–32768 ~
32767(16位2进制的最高位作为符号位‘1’为负‘0’为正),
而unsigned能存储的数据范围则是0~65535(这个最高位不用做符号位,所以是2的16次方,一共65536个数。
第3个回答  2013-12-20
声明一个静态的 unsigned int 类型的变量n,并且将它初始化为0。
第4个回答  2013-12-20
定义了一个静态的全局无符号整数 n,初始化为0.