C言语教程第二章: 数据典型、运算符、表达式(5)

字符串常量
字符串常量是由一对双引号括起的字符序列。比如: "CHINA" ,"C program:" , "$12.5" 等都是合理的字符串常量。字符串常量和字符常量是不合的量。它们之间主要有以下区别:
1.字符常量由单引号括起来,字符串常量由双引号括起来。
2.字符常量只能是单个字符,字符串常量则可以含一个或多个字符。
3.可以把一个字符常量授予一个字符变量,但不能把一个字符串常量授予一个字符变量。在C言语中没有相应的字符串变量。
这是与BASIC 言语不合的。但是可以用一个字符数组来存放一个字符串常量。在数组一章内予以引见。
4.字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。添加的一个字节中存放字符"\0"(ASCII码为0)。这是字符串终了的标记。比如,字符串 "C program"在内存中所占的字节为:C program\0。字符常量'a'和字符串常量"a"固然都只需一个字符,但在内存中的情景是不合的。
'a'在内存中占一个字节,可显现为:a
"a"在内存中占二个字节,可显现为:a\0标记常量

标记常量
在C言语中,可以用一个标识符来显现一个常量,称之为标记常量。标记常量在独霸之前必须先界说,其通俗办法为:
#define 标识符 常量
其中#define也是一条预处置饬令(预处置饬令都?quot;#"收尾),称为宏界说饬令(在第九章预处置递次中把进一步引见),其功用是把该标识符界说为厥后的常量值。一经界说,当前在递次中全数出现该标识符的地方均代之以该常量值。习惯上标记常量的标识符用年夜写字母,变量标识符用小写字母,以示区别。
#define PI 3.14159
void main()
{
  float s,r;
  r=5;
  s=PI*r*r;
  printf("s=%f\n",s);
}
由宏界说饬令界说PI 为3.14159 s,r界说为实数 5->r PI*r*r->s
表现递次了局 float s,r; r=5; s=PI*r*r; 本递次在主函数之前由宏界说饬令界说PI 为3.14159,在递次中即以该值替换PI 。s=PI*r*r等效于s=3.14159*r*r。应该留意的是,标记常量不是变量,它所代表的值在整个感染域内不能再改动。也就是说,在递次中,不能再用赋值语句对它从头赋值。

变量的初值和典型转换

变量赋初值
在递次中经常需求对变量赋初值,以便独霸变量。言语递次中可有多种体式格式,在界说时赋以初值的体式格式,这种体式格式称为初始化。在变量阐发');中赋初值的通俗办法为:
典型阐发');符 变量1= 值1,变量2= 值2,……; 比如:
int a=b=c=5;
float x=3.2,y=3f,z=0.75;
char ch1='K',ch2='P';
应留意,在阐发');中不睬会陆续赋值,如a=b=c=5是不合理的。
void main()
{
  int a=3,b,c=5;
  b=a c;
  printf("a=%d,b=%d,c=%d\n",a,b,c);
}
a<---3,b<--0,c<---5
b<--a c
表现递次运转了局

变量典型的转换
变量的数据典型是可以转换的。转换的体式格式有两种, 一种是主动转换,一种是逼迫转换。

主动转换
主动转换发作在不合数据典型的量殽杂运算时,由编译系统主动完成。主动转换依照以下规定礼貌:
1.若介入运算量的典型不合,则先转换成同一典型,然后休止运算。
2.转换按数据长度添加的方向休止,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再休止运算。
3.全数的浮点运算都因此双精度休止的,即使仅含float单精怀抱运算的表达式,也要先转换成double型,再作运算。
4.char型和short型介入运算时,必须先转换成int型。
5.在赋值运算中,赋值号双方量的数据典型不合时, 赋值号左边量的典型把转换为左边量的典型。 如果左边量的数据典型长度左边永劫,把丢失一部门数据,这样会降低精度, 丢失的部门按四舍五入向前舍入。图21显现了典型主动转换的规定礼貌。
void main()
{
  float PI=3.14159;
  int s,r=5;
  s=r*r*PI;
  printf("s=%d\n",s);
}
PI<--3.14159
s<--0,r<--5
s<--r*r*PI
表现递次运转了局
float PI=3.14159;
int s,r=5;
s=r*r*PI;
本例递次中,PI为实型;s,r为整型。在实施s=r*r*PI语句时,r和PI都转换成double型策画,了局也为double型。但由于s为整型,故赋值了局仍为整型,舍去了小数部门。


版权声明: 原创作品,理会转载,转载时请务必以超链接办法标明文章 原始因由 、作者信息和本声明。否则将清查法律责任。

原文地址:https://www.cnblogs.com/zgqjymx/p/1975626.html