c语⾔字符串常量表达,C语⾔基础教程:字符常量和字符串常
量
1.字符常量
字符常量由单引号括起的⼀个字符组成的。例如,
‘B’,‘d’,’9’,’\n’,‘\0,’,’\”等
都是字符常量,单引号是字符常量的定界符。单引号符可由}‘\”表⽰,即使⽤了转义序列的形式。因此,在字符常量中,对⼀般可打印字符采⽤直接写出字符符号的⽅法,⽽对不可打印字符采⽤转义序列的⽅法。
在C语⾔中,字符常量具有数值,该值便是该字符的ASCII码值。因此,⼀个字符常量可以像整数⼀徉的参与⼀些运算,如加法、减法等运算。例如,
‘d’⼀1
表⽰字符d的ASCII码值减去1,其差值为99。⼜例如。
‘C’⼀’A’+‘a’
表⽰将字符C的ASCII码值减去字符A的ASCII码值,再加上字符a的ASCII码值,其结果为67,⽽此值正是⼤写字母C的ASC’II值。
例:字符常量的输出。
mam()
c语言和c++区别printfi”%c,d\n;,67,’m ‘);
printf(” %e, %c,%c/n”,’a’,\r,,h’.);
prmtf(”%e,%c\n”,’a’,’r’,’b’);
Printlf(”%C %c”,‘\n’,\007’。;
下⾯分析该程序的输出结果,进⼀步搞清⼀些转义序列表⽰的字符的使⽤⽅法。
该程序中有4个printf ( )函数的语句,依次执⾏输出如下:
第⼀个printf < )函数的语句输出为:
C,109
因为67所对应的是⼤写字母C的ASCII码值,因此,按%。格式输出67时,则为字母C。⼜因为⼩写字母m的ASCII码值为109,因此,按%d 格式输出字母m的ASCII码值应是109。
第⼆个printf < ) j}数的语句输出为:.
a, b
因为按%C输出字符常量‘ a’时,屏幕应显⽰a,然后控制串中有⼀般字符逗号(,)则照样输出,这时显⽰为a,。接着,再按异长输
出’\b’,这是⼀个转义序列表⽰的字符,即退格符,在输出这个字符后,屏幕上显⽰为a,接着⼜输出控制申中的第⼆个逗号,这时显⽰为a,。再按%C输出字符常量’b『,因此,屏幕上应显⽰出a,h,由于控制串中最后⼀个字符是’场 },所以,光标被移到下⼀⾏第⼀个字符的位置。
第三个print f ( )函数的语句输出为:
.h
因为按%c输出字符常觉’a’,⼜输出控制串中第⼀个逗号后,显⽰为a,。再按%。输出字符常量\. r’后,光标被移到该⾏的⾸列,即字符a处,这时输出控制串中第⼆个逗号时,将字符a改为逗号(,)。接着,按灯c输出字符常量}b{时。屏幕上显⽰为。b。再将光标移⾄下⾏⾸列。
第四个printf ( )函数的语句输出为:
两声鸣铃
因为按%c。输出字符常量’\n’。则是机器的⼀声鸣铃,再按%:输出字符常量’\.007′,则机器⼜⼀次鸣铃。这时,光标仍停留在该⾏的⾸列,即光标并没有移动。
2.字符串常量
字符串常量是⽤⼀对双引号括起来的字符序列。双引号(””)作为字符串常量的定界符,
因此,在字符串中表⽰双引号应使⽤转义序列’\“’来表⽰。关于字符串与字符常徽的区别在前⾯已经讲述过了,这⾥不再重复。
关于字符和字符串这两种常量的区别还可以作下述描述:
早符实际上是⼀个整型数,⽽字符串实质上是地址值。
这句话前部分通过学习字符常量可以理解,字符的整型数就是该字符的ASCII码值。⽽后部分在学完“指针”⼀章后便可理解。
字符常量是⽤来给char型变量赋值的,⽽字符串常量却是⽤来给。har型数组赋值的,因此,两者是不相同的。
例:字符串常量的输出。
main( )
{
printf (” %s,%‘\n” }”Ok!”,”\good\“”
printf(”x\ty\b\bzuua\n”);
printf(”abc\tdef\rmn\tpq\n”).
}
分析该程序输出结果如下:
第⼀个printf ( ) l}数语句输出结果为:
ok!,”goo”
因为按%s输出字符串常量”ok!,则显⽰出ok,接着,控制串中的逗号被输出。然后,⼜按%s输出另⼀个字符串常\good`”“,这⾥有转义序列表⽰的字符’\“’。即双引号,这个字符串被输出显⽰为”good”。然后,光标移⾄下⾏⾸列。
第⼆个printf)函数语句输出结果为:
xuuuuiia
因为该语句是在屏幕上显⽰printf)函数中控制串中所指定的字符串常量。该字符串常
量中有可打印字符,⼜有不可打印字符’\t, ‘u’和’\b’,它们分别是⽔平制表符、空格符和退格符。⽔平制表符的作⽤是⽤来向
右“跳格⽓每次跳到下⼀个“输出位置”,⼀般系统中指定⼀个“物出区”占8列,第⼀个输出区占1⾄8列,下⼀个输出区将从第9列开始,直到lfi列,依此类推。空格符是将光标右移⼀个字符,退格符是将光标移到所在字符的前⼀个字符处。弄清这三个常⽤的转义序列表⽰的字符的功能后,便不难分析该字符
串常量的输出结果。⾸先,在该⾏⾸列显⽰字符、,接着,光标右移⾄第9列(⾸列为第⼀列)精出显⽰字符Y,然后输出两个‘\b’字符,光标向左退两列,即在第s列处,这时输出字符Z,再输出空格符,将Y变为空格符,⼜输出⼀个空格符后,输出字符a,于是屏幕上显⽰上述结果。
第三个printf ( )函数语句输出结果为:
mn a ,} u u u u pqf
因为先输出ahc字符后,再输出’\t’,这时光标移⾄第9列。接着,输出def,光标在第12列。当输出字符’\r’后,光标将被移⾄该⾏的⾸列。即a字符下,再输出mn时,将a变为m,将b变为n,⼜恰出’\t’,则将c变为空格符,光标移⾄第9列字符d下,输出p时,将d变P 下,输出q时,将e变q,f没有被改变,仍然存留,光标被移⾄下⾏的⾸列,因为最后有⼀个’\n’。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论