为什么在下面编写的代码中,我们不能将strA
赋给strB
,并且由于指针pA
持有指针pB
的地址,所以地址应该在将pA
赋给pB
时被复制,strB
应该包含与strB
相同的值。
#include <stdio.h>
char strA[80] = "A string to be used for demonstration purposes";
char strB[80];
int main(void)
{
char *pA; /* a pointer to type character */
char *pB; /* another pointer to type character */
puts(strA); /* show string A */
pA = strA; /* point pA at string A */
puts(pA); /* show what pA is pointing to */
pB = strB; /* point pB at string B */
putchar('\n'); /* move down one line on the screen */
pB=pA;
strB=strA;
puts(strB); /* show strB on screen */
puts(strA);
return 0;
}
最佳答案
当你写作时:
字符strB[80];
strB不是指针,而是常量指针。这意味着您不能更改strB所指的地址,因此
strB=斯特拉;
不会做任何事的。