为什么在下面编写的代码中我们无法将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;
}
答案 0 :(得分:4)
您无法在C(strB=strA
)中分配数组。您必须使用strcpy
或memcpy
将一个数组/指针的内容传输到数组。
答案 1 :(得分:2)
当你写:
char strB [80];
strB不是指针而是常量指针。这意味着您无法更改strB指向的地址,因此
STRB = STRA;
不会做任何事情。