《C与指针》读书笔记八
字符串是C语言中常用的一种数据形式。包含了ASCII码取值范围是0~127。ASCII是American Standard Code for Information Interchange(美国信息**标准代码)。以前我有一位年轻的同事,是一位爱国主义青年。每当国家邦交出现问题时恨不得用中文编程。其实美国科学家成果也是属于全人类的。这么想也就释然了。
本文引用地址:https://www.eepw.com.cn/article/201608/295758.htmASCII基本包括了编程所需全部字符。而且每一个ASCII码与char型数据是等价的。比如:
char ch;
ch = 0x30;
ch = 0x30与 ch = ‘0’ 是完全等价的。因为字符0(不是数字0)的值就是48,也就是0x30。所以字符完全可以进行算术运算和逻辑运算。
比如 ch = ‘0’ + 2; 是完全可以运算的。运算结果ch值为 ‘2’,也就是0x32。既然char数据是是0~127整型数据。那么逻辑运算也是完全可以的。
比如: ‘a’ > ‘b’ 运算结果为真。‘b > ‘a’结果就一定位假了。’2’是单个字符。如果将字符与数组结合起来在信息交流方面当然非常有用。
记得当年使用DOS6.22时,程序在运行过程中如果要输出一个提示,那么使用字符串当然非常方便。Printf函数的参数就有一个字符串。
比如:
char MSG[5] = { 'h', 'a', 'p','p', 'y'};
该数组与char MSG[5] = {0x68, 0x61, 0x70, 0x70, 0x79}完全等价。可以通过下表索引到每一个元素。如果需要输出该数组,以下代码可以实现。
#include
char MSG[5] = { 'h', 'a', 'p','p', 'y'};
void main( )
{
char i;
for( i =0; i < sizeof(MSG); i++)
printf("%c", MSG[i]);
printf("%n");
for( i =0; i < sizeof(MSG); i++)
printf("%0x ", MSG[i]);
printf("%n");
}
编译后运行输出结果为:
happy
68 61 70 70 79
字符串与数组的区别是字符串由一个隐含的结束符’