再论变量
变量是一个“容器'可以容纳一个值(可表示范围内的值)
变量的值可以随时使用和改变(每次只保存一个值)
问题:程序中是否有这样的“变量”:指定初始值后,只能使用不能改变?
程序中常量的概念
常量是相对变量而言的一种程序元素
其特点为:在编程时确定其值,一旦确定无法改变
C 语言中的常量类型
-字面量
·直接表示值含义的符号,如:5,'a,"Delphi"
宏常量(符号化的字面量)
·通过 #define 定义,间接表示值的符号,如:FIV →5.5
枚举常量
-通过 enum 定义,间接表示值的符号,如:First > 1
常量定义的语法
-宏常量:#define NAME Value
·示例:
#defineMyValue 0.05f
#define String "D.T.Software
-枚举常量:enum{N1=V1,N2=V2.….};
·示例:
enum
{
ThirdValue= 333,
FourthValue = 4444,
};
#include<stdio.h>
#define FirstValue 1u
#define SecondeValue 2.2f
enum
{
ThirdValue = 333,
FourthValue = 444,
/*TestValue = 5.5错误*/
};
int main()
{
unsigned ui = FirstValue;
int si = FourthValue;
printf("FirstValue = %u\n",FirstValue);
printf("SecondeValue = %f\n",SecondeValue);
printf("ThirdValue = %d\n",ThirdValue);
printf("FourthValue = %d\n",FourthValue);
printf("ui = %u\n",ui);
printf("si = %u\n",si);
getchar();
return 0;
}
常量的类型
-字面量有其默认类型,也可通过后缀指定其类型
- #define 定义的宏常量可以是任意类型
-enum 定义的枚举常量只能是整型
语言中的只读变量
-c语言中提供了 const 关键字,用于修饰一个变量
- 被 const 修饰的变量只能作为右值使用
无法直接通过赋值操作符改变 const 变量的值
const 修饰的变量并不是真正意义上的常量
示例:
#include<stdio.h>
int main()
{
const int ci = 222;
const double cd = 1.11;
int it =0;
double id = 0;
printf("const int ci=%d\n",ci);
printf("const double cd =%f\n",cd);
it = ci;
id = cd;
/*ERROR
ci = 100;
cd = 0.2f*/
//只读变量无法直接操作左只使用!!!
getchar();
return 0;
}
小结:
常量是相对变量而言的一种程序元素
常量在编程时确定其值,一旦确定无法改变
#define 定义的宏常量可以是任意类型
enum 定义的枚举常量只能是整型
const 修饰的变量并不是真正意义上的常量