计算机二级C语言章节知识点:10.2使指针指向一个字符串

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年8月2日
第10章 字符串 10.2 使指针指向一个字符串
讨论本章
  • 知识点:
  • 通过赋初值的方式使指针指向一个字符串
  • 通过赋值运算使指针指向一个字符串
  • 用字符数组作为字符串和用指针指向的字符串之间的区别
用字符数组作为字符串和用指针指向的字符串之间的区别
  用字符数组作为字符串和用指针指向的字符串之间的区别若有以下定义:
  char  mark[]=”PROGRAM”;char    * pmark=”PROGRAM”:虽然字符串的内容相同,但它们占有不同的存储空间,它们的存储结构如图10.2所示。
  在这里,mark是一个字符数组,通过赋初值,系统为它开辟了刚好能存放以上8个字符的存储空间(字符序列再加′\0′),可以通过数组元素mark[0]、mark[1]等形式来引用字符串中的每个字符,在这个数组内,字符串的内容可以改变,但数组mark总是代表一个固定的存储空间,且最多只能存放含有7个字符的字符串。而pmark是一个指针变量,通过赋初值,使其指向一个字符串常量,即:指向一个含有8个字符存储空间的无名字符数组。注意,mark数组中的字符串内容虽然与pmark所指字符串内容相同,但这两个字符串分别占有不同的存储空间。虽然也可以通过pmark[0]等形式来引用字符串常量中的每个字符,但指针变量pmark中的地址可以改变而指向另外一个长度不同的字符串。一旦pmark指向新的字符串而没有另一个指针指向原来的字符串,则此字符串将“丢失”,其所占存储空间也将无法引用。

相关文章