变量的数据类型: 自动变量:定义在函数或代码块内的变量,生命周期在函数或代码块结束后结束。 静态变量:使用static声明的变量,生命周期持续整个程序执行期间。 寄存器变量:使用register声明,让变量存储在CPU寄存器中加快访问速度。 外部变量:使用extern声明的变量定义在其他源文件中。 指针变量:用于存储地址的值。 数组变量:用于存储多个同类型数据元素。
int*p = &a;//声明了一个整型指针变量,也是4字节,假设指针分配的内存是214-217printf("整型指针的大小: %d\n", sizeof(int*));//sizeof可以用来计算占用的字节数printf("指针p的地址: %d\n", &p);printf("指针p的值: %d\n", p);printf("变量a的地址: %d\n", &a);printf("指针p所指向的地...
全局贵族团:这些变量地位崇高,被定义在函数体之外。编译器为它们在 .bss段 开辟专属空间,并贴心初始化:永恒的贵族:static成员在函数内部使用static修饰的变量,成为跨越时间的存在:这些"贵宾变量"在程序启动时,自动获得初始值:整数为0,浮点数为0.0,指针为NULL,字符为'\0'。第二类:生死未卜的"平民变量"...
因此这类局部变量称为自动变量。自动变量用关键字auto作存储类别的声明 intf(inta)//定义f函数,a为形参{autointb,c=3;//定义b,c为自动变量,新版本auto不能加在数据类型前面了} 静态局部变量 若希望变量调用完后值还留着,即其占用的存储单元不释放,在下一次再调用该函数时,该变量的值就是上次用的值。这时就...
1)全局变量是不显式用static修饰的全局变量,全局变量默认是有外部链接性的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。 2)全局静态变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。
指针也就是内存地址,指针变量是用来存放内存地址的变量。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。指针变量声明的一般形式为:type *var_name; 在这里,type 是指针的基类型,它必须是一个有效的 C 数据类型,var_name 是指针变量的名称。用来声明指针的星号 * 与乘法中使用的星号...
constintc;//定义只读变量staticintb;//定义静态变量 说明: 变量定义作用域分为全局变量和局部变量。 1.局部变量和全局变量名称可以相同。 2.如果局部变量名称与全局变量名称相同,优先使用局部变量。 #include<stdio.h>voidfunc(int);intdata=...
指针变量:默认值为NULL,表示指针不指向任何有效的内存地址。 数组、结构体、联合等复合类型的变量:它们的元素或成员将按照相应的规则进行默认初始化,这可能包括对元素递归应用默认规则。 需要注意的是,局部变量(在函数内部定义的非静态变量)不会自动初始化为默认值,它们的初始值是未定义的(包含垃圾值)。因此,在使用...
生命周期:静态变量在程序执行期间始终存在,即从程序开始执行直至程序结束时才会被销毁。即使函数执行结束后,静态变量的值也会被保留下来,下次函数调用时继续使用上次的值。 初始化: 静态全局变量(在函数外部定义):如果未指定初始值,则默认初始化为0(对于数值类型)或空指针(对于指针类型)。如果指定了初始值,编译器会...