c语言通过指针引用字符串

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过指针引用数组元素
• 指针变量既然可以指向变量,当然也可以指向数组元素。
所谓数组元素的指针就是数组元素的地址。
(C语言中,将地址形象化的称为指针)。
1.
int a[10]={1,2,3,4,5,6,7,8,9,10};
2.
int *p;
3.
p=&a[0];||p=a;(数组名不代表整个数组,只代表数组首元素的地址,
练习
• char *a[]={"one","two","three"}; • 输出这三个字符串
字符指针当作函数参数(把一个字符串从一个函数“传递”到另一个函数)
• 函数的形参和实参可以分别用字符数组名或字符 • 例题:用函数实现字符串的复制
练习: 用字符型指针变量当作实参
指针数组和数组指针
一个数组,若其元素均为指针类型数据,称为指针数组。
也就是说,数组中每一个元素都存放一个地址,都是一个指针变量。
即a==&a[0])
第3步表示把数组首元素的地址赋给了指针变量 p
指针指向数组元素时,可以对指针进行以下运算
加一个整数如p+1,此时p+1指向a[1]; 减一个整数如p-1;
注意
p++,++p,p--,--p; 两个指针相减;
执行p+1时并不是将p的值简单的加1,而是加上一个数组元素所占的字节数
例:int a[5],表明数组元素是int型,每个元素占4个字节,p+1意味着使p的值(地址)加4 个字节,以使它指向下一元素。
例题
根据以上叙述,引用一个数组元素,可以用下面两种方法:
1. 下标法,a[i]
2. 指针法,*(a+i)或者*(p+i),p=a;








ቤተ መጻሕፍቲ ባይዱ






通过指针引用字符串
• 用字符数组存放一个字符串,可以通过数组名和下标引用字符串中一个字符,也可以通过数组名和格 式声明“%s”输出该字符串。 定义字符数组a时没有指定长度,由于对它初始化,因此它的长度是确定的,长度是5, 因为系统在处理字符串常量储存时会自动加一个‘\0’('\0'是字符串结束的标志)
int *p[4]
([]比*的优先级高,因此p先于[4]结合)
表示数组p有四个元素,每个数组元素都是一个指针变量, 都可指向一个整形变量(int)
数组指针,指向数组的指针(了解就行,别混) int (*p)[4]
例:
定义了一个含有8个指针元素的指针 数组w_day,
每个指针数组元素都指向了一个字 符串,最后一个指向NULL
可以不定义字符数组,只定义一个字符指针变量,用它指向字符串。通过字符指针变量输出该字符串
C语言对字符串常量是按字符数组处理的,但是这个字 符数组是没有名字的,因此不能通过数组名来引用,只 能通过指针变量来引用。 对字符指针变量a进行初始化,实际上是把字符数组的 首元素地址赋给指针变量a
练习
• char a[]=”I love CSDN”,char b[20],将a字符数组中的字符逐个复制到 b数组中,(用两个指针变量来处理p1=a;p2=b)
相关文档
最新文档