C程序设计语言——八、指针(4)字符串的指针
目录
存放、访问字符串的两种方法
一、字符数组存放字符串
二、字符指针指向一个字符串
三、字符数组和字符指针的区别
1、字符串指针存放的是字符串的首地址,字符数组名存放的是数组的首地址
2、字符串指针可以自增自减,字符数组不可以
3、定义,赋值
4、输入
5、《指针法——将字符串a复制到b,输出b》
四、指向指针的指针
1、char p;
2、初始化
五、int (*p)()、int *p()、int (*p)[]、int *p[] 区别
存放、访问字符串的两种方法
一、字符数组存放字符串
1、char string[]="I Love China";
二、字符指针指向一个字符串
2、字符串常量在内存中连续存放:char *string = "I~~~~~~";
三、字符数组和字符指针的区别
1、字符串指针存放的是字符串的首地址,字符数组名存放的是数组的首地址
2、字符串指针可以自增自减,字符数组不可以
3、定义,赋值
char *string ="~~~~~~";= char *string;string = "~~~~"
4、输入
先定义,后赋值,在使用 !,没有赋值就是野指针
5、《指针法——将字符串a复制到b,输出b》
//指针法——将字符串a复制到b,输出b
#include<stdio.h>
void main()
{char a[]="i am a girl.",b[20],*p1,*p2;p1=a;p2=b;for(;*p1!='\\0';p1++,p2++)*p2=*p1;*p2='\\0';printf("strinf a is:%s\\n",a);printf("strinf b is:%s\\n",b);
}
//子函数+指针法
#include<stdio.h>
void main()
{void strcpy(char *p1,char *p2);char a[]="i am a girl.",b[20];strcpy(b,a);printf("strinf a is:%s\\n",a);printf("strinf b is:%s\\n",b);
}
void strcpy(char *p2,char *p1)
{for(;*p1!='\\0';p1++,p2++)*p2=*p1;*p2='\\0';
}
四、指向指针的指针
1、char p;
2、初始化
int a =3,*p,pa; p=&a; pa=&p;
五、int (*p)()、int *p()、int (*p)[]、int *p[] 区别:
1、int (*p)():指向函数的指针变量
2、int *p():返回指针的函数
3、int (*p)[]:指向有xx个元素的一维数组的指针变量
4、int *p[]:指针数组
拜拜~