新闻中心

EEPW首页 > 嵌入式系统 > 牛人业话 > 《C与指针》读书笔记八

《C与指针》读书笔记八

作者:时间:2016-08-19来源:网络收藏

  字符串是语言中常用的一种数据形式。包含了ASII码取值范围是0~127。ASII是American Standard Code for Information Interchange(美国信息**标准代码)。以前我有一位年轻的同事,是一位爱国主义青年。每当国家邦交出现问题时恨不得用中文编程。其实美国科学家成果也是属于全人类的。这么想也就释然了。

本文引用地址:http://www.eepw.com.cn/article/201608/295758.htm

  ASCII基本包括了编程所需全部字符。而且每一个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

  字符串与数组的区别是字符串由一个隐含的结束符’’。’’的值为0 ,是ASCII表的第一个字符,即NULL。如果要定义一个字符串很容易。char MSG[6] = { 'h', 'a', 'p','p', 'y',''};这样生命是没有任何问题。但是过于复杂。一般的声明方法如是:char MSG[ ] = "happy"; MSG占用了6个字符串。因为''也要占用一个字节空间。既然每个字符串都有一个结束符。所以根据结束符就可以判断一个字符串是否结束。以下代码可以输出字符串happy.

  char MSG[ ] = "happy";

  void main( )

  {

  char i=0;

  while(MSG[i])

  printf("%c", MSG[i++]);

  }

  在本处我们是为了强调’’值为0.其实以下代码更方便。

  void main( )

  {

  printf("%s", MSG);

  }



关键词: C 指针

评论


相关推荐

技术专区

关闭