C语言基础教程(四)指针、结构、联合和枚举(7)

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号字符,但企图通过指针来修改字符串常量的行为是没有意义的。

时间: 2024-10-30 17:42:12

C语言基础教程(四)指针、结构、联合和枚举(7)的相关文章

C++基础教程(四)——指针(3)

//===================================================== // Name : Pointer1.cpp // Author : lf // Version : <C++语言基础教程> 吕凤翥 P41--P45 2.5.2 // Description : 指针数组和指向数组的指针以及字符指针 //===================================================== #include <iostre

C++基础教程(六)——指针(1)

//===================================================== // Name : Pointer1.cpp // Author : lf // Version : <C++语言基础教程> 吕凤翥 P35--P37 2.5.1 // Description : 指针 // Tips : // int *P ---------> p是一个指向int型变量的指针 // char *c---------> c是一个指向char型变量的指针

C++基础教程(五)——指针(2)

//===================================================== // Name : Pointer1.cpp // Author : lf // Version : <C++语言基础教程> 吕凤翥 P38--P43 2.5.2 // Description : 指针和数组 // Tips : // 在C++中,数组的元素可以用下标表示,也可以用指针表示. // 但是最好是用指针表示,因为指针表示要比下标表示处理起来要快. // 所以在C++中尽量

C 语言基础教程(我的C之旅开始了)[八]_C 语言

19. 基本数据类型:复数类型和虚数类型 C99 新增了复数类型(_Complex)和虚数类型(_Imaginary).简单来说,C99 提供了三种复数类型:float _Complex,double _Complex,和 long double _Complex.对于 float _Complex 类型的变量来说,它包含两个 float 类型的值,一个用于表示复数的实部(real part),另一个用于表示虚部(imaginary part).类似地,double _Complex 包含两个

易语言基础教程之制作简易浏览器_易语言

方法/步骤 首先打开易语言: 点击--工具--支持库配置--全选--确认 之后点击属性--拉宽 之后点击标题输入测试浏览器 拉一个编辑框和按钮最后一个超文本浏览框(自己找) 之后双击按钮输入代码: .版本 2 .支持库 HtmlView .子程序 _按钮1_被单击 超文本浏览框1.地址 = 编辑框1.内容 按F5测试,好的行了 注意事项 编辑框要输入网址,不能输入其他的OK. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜

C语言基础教程(四)指针、结构、联合和枚举(1)

本节专门对第二节曾讲述过的指针作一详述.并介绍Turbo C新的数据类型:结构.联合和枚举,其中结构和联合是以前讲过的五种基本数据类型(整型.浮点型.字符型.指针型和无值型)的组合.枚举是一个被命名为整型常数的集合.最后对类型说明(typedef)和预处理指令作一阐述. 1. 指针(point) 学习Turbo C语言,如果你不能用指针编写有效.正确和灵活的程序,可以认为你没有学好C语言.指针.地址.数组及其相互关系是C语言中最有特色的部分.规范地使用指针, 可以使程序达到简单明了,因此,我们不

C语言基础教程(四)指针、结构、联合和枚举(18)

类型说明类型说明的格式为:typedef 类型 定义名; 类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型.这里类型是Turbo C许可的任何一种数据类型.定义名表示这个类型的新名字. 例如: 用下面语句定义整型数的新名字: typedef int SIGNED_INT; 使用说明后,SIGNED_INT就成为int的同义词了,此时可以用SIGNED_INT定义整型变量.例如:SIGNED_INT i, j;(与int i, j等效). 但long SIGNED_INT i, j;

C语言基础教程(四)指针、结构、联合和枚举(12)

二.结构指针结构指针是指向结构的指针.它由一个加在结构变量名前的"*" 操作符来定义,例如用前面已说明的结构定义一个结构指针如下: struct string{ char name[8]; char sex[2]; int age; char addr[40]; }*student; 也可省略结构指针名只作结构说明,然后再用下面的语句定义结构指针. struct string *student; 使用结构指针对结构成员的访问,与结构变量对结构成员的访问在表达方式上有所不同.结构指针对结

C语言基础教程(四)指针、结构、联合和枚举(11)

3.结构数组和结构指针结构是一种新的数据类型,同样可以有结构数组和结构指针.一.结构数组结构数组就是具有相同结构类型的变量集合.假如要定义一个班级40个同学的姓名.性别.年龄和住址,可以定义成一个结构数组.如下所示:struct{ char name[8]; char sex[2]; int age; char addr[40]; }student[40]; 也可定义为: struct string{ char name[8]; char sex[2]; int age; char addr[4

易语言基础教程之循环程序结构_易语言

曾经听说过一句话:"计算机就擅长做的工作就是'循环'!".的确循环执行在语言中扮演着极为重要的角色,利用循环我们可以实现更复杂.重复性的工作.易语言对于循环程序结构提供四种形式,下面就一起来了解一下易语言中循环结构的具体使用方法. 方法/步骤 在此小编将以实例的方法与大家分享易语言中循环结构的具体使用方法:先创建一个Windows空白窗口,绘制如图所示的人机界面. 接下来为"计算"按钮添加"被单击"事件. 我们先利用"判断循环"