> 文章列表 > C程序设计语言——八、指针(4)字符串的指针

C程序设计语言——八、指针(4)字符串的指针

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[]:指针数组


拜拜~