C语言-常量、变量和数据类型

/* 将华氏温度转换为摄氏温度 */	
#include <stdio.h>	

int main(void)
{
	/* 定义两个整型变量,celsius表示摄氏度,fahr表示华氏度 */
	int celsius, fahr;
	
	fahr = 100;					/* 对变量fahr赋值 */
	celsius = 5*(fahr-32)/9;	/* 温度转换计算 */
								/* 调用printf()函数输出结果 */
	printf("fahr = %d, celsius = %d\n", fahr, celsius);
							
	return 0;
}

运行结果:
在这里插入图片描述

1、常量、变量和数据类型
  在C语言中,数据有常量和变量之分。程序运行过程中,值不能被改变的量称之为常量,其值可以改变的量称为变量。例如上例中的100是常量,celsius和fahr是变量。
  变量是一个保存数据的量,我们可以把我们需要保存的数据放在变量中。例如上例:fahr = 100;就代表我们把100放在了变量fahr中,这个时候fahr就是100,我们也可以继续给fahr赋值,例如fahr = 37;那么这个时候fahr就变成了37,变量就是可以根据我们的需要来变化。
  常量与变量都有类型,常量的类型通常由书写的格式来决定,例如,100就是整型常量(整数),而121.2就是实型(实数)常量。而变量的类型是定义时就决定了。
  变量定义的一般形式:
  类型名  变量名称;
  类型名必须是有效的数据类型,变量名可以有一个变量或由逗号间隔的多个变量名,例如:

int celsius, fahr; /* 定义两个整型变量 celsius和fahr,用于存放整数*/
float x;		   /* 定义一个单精度浮点型变量x,用于存放实数 */
double length, width;  /* 定义两个双精度浮点型变量length和width,用于存放实数 */

  变量名可以是英文字母、数字和下划线“_”的组合,但是不能以数字开头,例如fa_h1r、_fahr3是合法的,2fahr就是非法的。变量名也不能是C语言的关键字,例如,int,double,if,else,for,static等等。
   C语言常用的数据类型有如下:(32位平台下占用的字节)

		char:字符型(1字节)
		short:短整型(2字节)
		int:整型(4字节)
		long:长整型(4字节)
		float:单精度浮点型(4字节)
		double:双精度浮点型(8字节)

  C语言中的变量使用前必须先定义。定义变量时要确定变量的名字和数据类型。每个变量必须有一个名字作为标识,变量名代表内存中的一个存储单元,用于存放该变量的值,而存储单元的大小由变量的类型决定。
  注:1、整型变量所需存储空间与编译系统有关,一般的32位平台下所占用的大小如上。
    2、C语言中变量的含义和数学中变量的含义不同。C语言中的变量代表保存数据的存储单元,而数学中的变量代表未知数。例如,x=x+1早数学上是错误的,但在C语言中是把变量x的值加1,然后再保存到x中。
    3、C语言区分大小写字母,Fahr和fahr是不一样的。

2、变量定义和初始化
  变量在使用之前必须定义!C89标准必须在执行语句前定义好所有的变量,而C99标准允许在变量使用前的任何位置定义变量。例如,在C99标准下一下语句是合法的:

	int a = 0/*C99标准*/
	printf("%d\n", a);
	int c = 2; 			/*变量可以在使用前任何位置定义*/
	printf("%d\n", c);

  而C89标准是非法的,必须改成如下:

	int a = 0/*C89标准*/
	int c = 2; 			/*变量必须在执行操作语句前定义完成*/
	printf("%d\n", a);
	printf("%d\n", c);

  变量的初始化是指在变量定义时给定的一个初值,例如:int a = 0;即给定a的初始值为0,而若未进行初始化的情况下,变量的值是不确定的,一定要注意这种情况,在变量使用前最好先给定一个初始值,未初始化的变量并没有一个确定的默认值,大部分情况下不为0。如下代码的例子,其中a进行了初始化,所以输出结果为0,b未进行初始化,其结果不确定:

int a = 0, b; 
printf("a = %d, b = %d\n", a, b);

运行结果:
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值