指向字符串的指针:
在C语言中,访问一个字符串有多种方法:
可以用字符数组存放一个字符串。
char string[]="Linux C";
printf("%s\n",string); //注意是%s
string是一个字符数组名,它同时也是该字符数组的首地址,即LinuxC这个字符串的首地址。
同理char *p="Linux C";
printf("%s\n",p).//在内存中开辟一个字符数组来存储该字符串常量,并把开辟出的字符数组的首地址赋给P
P指向的是字符串常量!!!所以p[0]='A'是非法的。
#include<stdio.h>
int main()
{
char a[]="Linux C Program",b[20],c[20];//这算是动态数组吗?
int i;
for(i=0;*(a+i)!='\0';i++)
*(b+i)=*(a+i);
*(b+i)='\0';
char *p1,*p2;
p1=a;
p2=c;
for(;*p1!='\0';p1++,p2++)
*p2=*p1;
*p2='\0';
printf("%s\n",a);
printf("%s\n",b);
printf("%s\n",c);
return 0;
}
用指针拷贝字符串。
gdb只是看了,没实践。