当前位置:天才代写 > tutorial > C语言/C++ 教程 > C语言基本教程(四)指针、布局、连系和列举(7)

C语言基本教程(四)指针、布局、连系和列举(7)

2017-11-04 08:00 星期六 所属: C语言/C++ 教程 浏览:790

3.字符指针
我们已经知道,字符串常量是由双引号括起来的字符序列,譬喻:
"a string"
就是一个字符串常量,该字符串中因为字符a后头尚有一个空格字符,所以它由8个字符序列构成。在措施中如呈现字符串常量C编译措施就给字符串常量按排一存贮区域,这个区域是静态的,在整个措施运行的进程中始终占用,平时所讲的字符串常量的长度是指该字符串的字符个数,但在按排存贮区域时,C编译措施还自动给该字符串序列的末端加上一个空字符’\0′,用来符号字符串的竣事,因此一个字符串常量所占的存贮区域的字节数总比它的字符个数多一个字节。
Turbo C中操纵一个字符串常量的要领有:
(1).把字符串常量存放在一个字符数组之中,譬喻:
char s[]="a string";
数组s共有9个元素所构成,个中s[8]中的内容是’\0’。实际上,在字符数组界说的进程中,编译措施直接把字符串复写到数组中,即对数组s初始化。
(2).用字符指针指向字符串,然后通过字符指针来会见字符串存贮区域。当字符串常量在表达式中呈现时,按照数组的范例转换法则,它被转换成字符指针。因此,若我们界说了一字符指针cp:
char *cp;
于是可用:
cp="a string";
使cp指向字符串常量中的第0号字符a,如图7.所示。
cp
┏━━━┓ ┏━┳━┳━┳━┳━┳━┳━┳━┳━┓
┃ ─╂─→ ┃a ┃ ┃s ┃t ┃r ┃i ┃n ┃g ┃\0┃
┗━━━┛ ┗━┻━┻━┻━┻━┻━┻━┻━┻━┛
图7.
今后我们可通过cp来会见这一存贮区域,如*cp或cp[0]就是字符a,而cp[i]或*(cp+i)就相当于字符串的第i号字符,但诡计通过指针来修改字符串常量的行为是没有意义的。

 

    关键字:

天才代写-代写联系方式