近来,在strcpy的使用中发现了一个很难想清楚的问题。鄙人水平不足,还请大佬们指点。
问题:
我想问一下为什么下面这串代码q[0]与q[1]的交换不能使用strcpy(下面注释掉的代码),q[0]和q[1]指向的不就是那两个字符串吗?难道是字符串的地址?可字符串的内容不就是字符串的地址吗?
#include <stdio.h>
#include <string.h>
int main()
{
char p[2][100]={"hello","world"};
char *q[2];
q[0]=p[0];
q[1]=p[1];
char *temp;
temp=q[0];
q[0]=q[1];
q[1]=temp;
/*
strcpy(temp,q[0]);
strcpy(q[0],q[1]);
strcpy(q[1],temp);
*/
printf("%s ",q[0]);
printf("%s ",q[1]);
}