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()

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’。

你可能感兴趣的:(c语言字符串常量表达)