“变量和常量”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
 
(未显示同一用户的7个中间版本)
第9行: 第9行:
 
int main()
 
int main()
 
{
 
{
 
 
int age;
 
int age;
 
int x;
 
int x;
 +
float ft;
 +
double dx;
 +
char ch;
 +
}
 +
</syntaxhighlight>
  
float ft;
 
  
double dx;
+
变量的赋值:<syntaxhighlight lang="c">
 +
int main()
 +
{
 +
int age;
 +
int x;
 +
age = 19;
 +
x = age + 20;
 +
//x = 39;
 +
}
 +
</syntaxhighlight>变量最大的特点是可以被赋值,可以改变它的数据值。
  
char ch;
+
age 和 x 开始时没有赋值,我们把它称之为随机值,这是不好的编程习惯。
  
 +
好的编程习惯是在定义变量的同时给它赋值:<syntaxhighlight lang="c">
 +
int main()
 +
{
 +
int age = 1; //初始化
 +
age = 19; //赋值
 +
}
 +
</syntaxhighlight>同类型变量可以用一行代码替代:<syntaxhighlight lang="c">
 +
int main()
 +
{
 +
int age = 1, x = 0;
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
但一般认为分开定义的方式比好,分别注释变量用途,思路清晰。
 +
 +
  
 
什么是声明,什么是定义?
 
什么是声明,什么是定义?
第33行: 第59行:
  
 
'''定义和声明最重要的区别''':'''定义创建了对象并为这个对象分配了一块内存,而声明的时候是没有分配内存空间的'''。
 
'''定义和声明最重要的区别''':'''定义创建了对象并为这个对象分配了一块内存,而声明的时候是没有分配内存空间的'''。
 +
[[文件:C 定义和声明.png|无|缩略图|600x600像素]]“float pi = 3.14f;”中“3.14f”,后面的“f”是告诉编译器3.14是一个单精度数;如果后面没有“f”,编译器将认为3.14是一个双精度 double 类型的数。

2022年10月30日 (日) 06:28的最新版本

https://www.bilibili.com/video/BV1vR4y1H7MY?p=7

变量是以某标识符为名字,其数值可以改变(可读,可写)。{可读(获取,可取值),可写(赋值)}

常量其值不可改变(只可读,不可写)。


定义变量的格式:数据类型 变量名; //变量的定义是一条语句,每条语句都是以分号结尾的。所以定义完变量,后面不要漏掉“;”分号。

int main()
{
	int age;
	int x;
	float ft;
	double dx;
	char ch;
}


变量的赋值:

int main()
{
	int age;
	int x;
	age = 19;
	x = age + 20;
	//x = 39;
}

变量最大的特点是可以被赋值,可以改变它的数据值。

age 和 x 开始时没有赋值,我们把它称之为随机值,这是不好的编程习惯。

好的编程习惯是在定义变量的同时给它赋值:

int main()
{
	int age = 1; //初始化
	age = 19; //赋值
}

同类型变量可以用一行代码替代:

int main() 
{
	int age = 1, x = 0;
}

但一般认为分开定义的方式比好,分别注释变量用途,思路清晰。


什么是声明,什么是定义?

什么是定义:所谓的定义就是为这个变量分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名。但注意,这个名字一旦和这块内存匹配起来,它们就同生共死,终生不离不弃,并且这块内存的位置也不能被改变。一个变量在一定的区域内(比如函数内,全局等)只能被定义一次,如果定义多次,编译器会提示你重复定义同一个变量或对象。

什么是声明:有两重含义,如下:

第一重含义:告诉编译器,这个名字已经匹配到一块内存上了。

第二重含义:告诉编译器,这个名字已经被预定了,别的地方再也不能用它来作为变量名。

定义和声明最重要的区别定义创建了对象并为这个对象分配了一块内存,而声明的时候是没有分配内存空间的

C 定义和声明.png

“float pi = 3.14f;”中“3.14f”,后面的“f”是告诉编译器3.14是一个单精度数;如果后面没有“f”,编译器将认为3.14是一个双精度 double 类型的数。