为什么在下面编写的代码中,我们不能将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=斯特拉;
不会做任何事的。

10-08 14:18