标签:value 大小 变量定义 highlight 创建 不同 文件中 pre ret
/* 变量是程序可操作的存储区的名称,c中每个变量都有特定的类型,类型决定了变量存储的大小和布局, 该范围内的值都可以存储在内存中,运算符可应用于变量上。 变量的名称可以由字母、数字、下划线组成。但是开头必须要是字母或者下划线。大写和小写不同,C对大小写是敏感的。 */ //c中变量的定义 /* 变量的定义是告诉编译器在何处创建变量的存储,以及如何存储。定义格式如下 type variation1,variation2,······ 这里的type必须是有效的C数据类型,可以一次定义多个变量,多个变量之间用,分割 举个栗子: int i,j,k; char c,ch; float f,salary; double d; 当然变量也可以在声明的时候被初始化,也就是赋给一个值 type variation=value; 举个栗子: int d=3,f=5; 定义并初始化d和f byte z=22; 定义并初始化z char x=‘X‘; 变量的值为‘X‘ */ //c语言中变量的声明 /* 变量声明向编译器保证变量以指定的类型和名称存在,这样编译器在不知道变量的具体细节的情况下也可以继续编译 变量声明只在编译时有它的意义,在程序连接时,编译器需要实际的变量声明。 变量的声明有实际两种情况: 1.需要建立存储空间的,如int a,在声明的时候就已经建立的存储空间 2.不需要建立存储空间的,如extern int a,使用extern关键字声明而不定义它,使得变量a可以在别的文件中定义 除非有extern关键字,否则都是变量的定义 extern int i; 声明,不是定义 int i; 声明,也是定义 */ #include <stdio.h> //变量声明 extern int a,b; extern int c; extern float f; int main01() { //变量定义 int a,b; int c; float f; //初始化 a = 10; b = 20; c = a+b; f = a+b; printf("a=%d,b=%d\n",a,b); printf("c=%d\n",c); printf("f=%f\n",f); } /* a=10,b=20 c=30 f=30.000000 */ //C中的左值和右值 /* 通俗的话将,能被赋值的就叫做左值。比方说int a; 这个a就可以被赋值,那么a就是左值 只能赋值给别人的值叫做右值,比方说20,‘a‘,这些常量只能赋值给别人 不可能出现20=xxx,这种情况 左值可以出现在=的两边,既可以被赋值,也可以给别的变量的赋值 右值只可以出现在=的右边,只能将自己赋值给别人 */ //笔记 /* extern int a; //声明一个全局变量a int a; //定义一个全局变量a extern int a=0; //定义一个全局变量a并赋予初值,一旦赋予初值,必定是定义,会被分配存储空间 int a=0; //定义一个全局变量a,并赋予初值 声明之后不能直接使用这个全局变量,必须定义之后才能使用 第四个等于第三个,都是定义一个可以使用的全局变量,并给予初值 尽管很相似,但还是有很多不同的,声明可以多次,但是定义只能出现一次。 不管是int a;还是int a=0;都是只能出现一次的,而extern int a;可以出现多次 当你要引用一个全局变量的时候,必须要使用extern int a; 因为extern省略了的话,就变成了int a,这是一个定义而不是声明 */ /* 1.当需要保存数据的时候,使用左值 2.当需要读取数据的时候,使用右值 左值可以当右值使用 int n=1; //这里的n是左值 int m; m = n+2; // 这里的n是右值 右值不可能转化为左值 */ /* 变量的内存寻址 1.内存地址由大到小,优先分配内存地址比较大的字节给变量,所以变量越先被定义,内存地址就越大 2.变量地址的获取方式,&变量名 3.输出地址的方式:%p */ int main02() { int a=1; int b=1; printf("&a=%p,&b=%p\n", &a,&b); //&a=0061FF2C,&b=0061FF28,可以看到a的内存地址比较大 return 0; } //变量一定要初始化才可以使用,因为在C语言中没有初始化的值默认是一个很大的值 int main() { int a; printf("a=%d\n", a); //a=4194432 return 0; }
标签:value 大小 变量定义 highlight 创建 不同 文件中 pre ret
原文地址:https://www.cnblogs.com/traditional/p/9463608.html