c语言之常量
常量:指程序中不能修改的固定值,可以是任何的基本数据类型。
1、字符常量包含在一对单引号中如:‘a’。
整型常量如100,200等等。
对于整型常量,U跟在数值后面,数值按照unsigned处理,L按照long处理。
浮点类型常量分float和double两种。
对于浮点型常量,F跟在数值后面,数值按照float类型处理。用L跟在数值后面,数值按照long double处理
我们看看程序:
int main(void)
{
int a = -32766;
int ua = 65534U;
int la = -2147483646L;
double fa = 123.23000F;
double da = 123.2300000001;
double lfa = 123.2300000001L;
printf("int size is %d\n",sizeof(int));
printf("float size is %d\n",sizeof(float));
printf("double size is %d\n",sizeof(double));
printf("int is %d\n",a);
printf("unsigned int is %u\n",ua);
printf("long int is %d\n",la);
printf("float is %.10f\n",fa);
printf("double is %.10f\n",da);
printf("long double is %.10f\n",lfa);
getch();
return 0;
}
程序结果如下:
int size is 4
float size is 4
double size is 8
int is -32766
unsigned int is 65534
long int is -2147483646
float is 123.2300033569
double is 123.2300000001
long double is 123.2300000001
程序首先判断机器对于各种类型的长度,然后根据各种值输出。
输出结果大家自己判断一下。
2、16进制和8进制常量
16进制常量使用数字0-9字母A-F,分别代表1-9和10-15。
16进制常量以0x开头后跟16进制数字,8进制以0开头。
例如:
int main(void)
{
int hex = 0x80; /*代表128*/
int oct = 012; /* 代表10*/
printf("decimal is %d\n",hex);
printf("hex is %x\n",hex);
printf("decimal is %d\n",oct);
printf("oct is %o\n",oct);
getch();
return 0;
}
程序结果为:
decimal is 128
hex is 80
decimal is 10
oct is 12
3、反斜线字符常量
把字符放在一对单引号中,适于打印字符。
如:\n代表新行
\t 代表水平制表
例如:使用\n、\t和ascii码表中的.和空格输出方字。
int main(void)
{
int i=0;
int j=0;
int k=0;
printf("\n");/*换行*/
printf("\t"); /*制表符号*/
printf("\x2E");
printf("\n");/*换行*/
printf("\t");
printf("\x20");/*空格*/
printf("\x2E");
printf("\n");/*换行*/
printf("\t");
printf("\x20");/*空格*/
printf("\x20");/*空格*/
printf("\x2E");
printf("\n");/*换行*/
for(i=0;i<=3;i++)
{
printf("\x20");
}
for(i=0;i<=7;i++)
{
printf("\x2E");
printf("\x20");
}
for(i=0;i<=5;i++)
{
printf("\n");
for(j=9-i;j>0;j--)
{
printf("\x20");
}
if(i==2)
{
for (k=0;k<=3;k++)
{
printf("\x2E");
printf("\x20");
}
}
printf("\x2E");
if(i==3)
{
for (k=0;k<i+5;k++)
{
printf("\x20");
}
printf("\x2E");
}
if(i==4)
{
for (k=0;k<i+3;k++)
{
printf("\x20");
}
printf("\x2E");
printf("\x20");
printf("\x2E");
}
if(i==5)
{
for (k=0;k<i+5;k++)
{
printf("\x20");
}
printf("\x2E");
}
}
getch();
return 0;
}
程序结果如下:
.
.
.
. . . . . . . .
.
.
. . . . .
. .
. . .
. .
到网页上效果不是很好。
注:所有程序通过dev c++5测试。