为什么一个字符串变量不能分配给C中的另一个字符串变量?
为什么在下面编写的代码中,我们不能将为什么一个字符串变量不能分配给C中的另一个字符串变量?,c,string,pointers,C,String,Pointers,为什么在下面编写的代码中,我们不能将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 characte
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;
}
#包括
char strA[80]=“用于演示目的的字符串”;
char-strB[80];
内部主(空)
{
char*pA;/*指向类型字符的指针*/
char*pB;/*指向类型character的另一个指针*/
puts(strA);/*显示字符串A*/
pA=strA;/*点pA在管柱A处*/
放置(pA);/*显示pA指向的内容*/
pB=strB;/*字符串B处的点pB*/
putchar('\n');/*在屏幕上向下移动一行*/
pB=pA;
strB=strA;
放置(strB);/*在屏幕上显示strB*/
看跌期权(strA);
返回0;
}
不能在C中分配数组(strB=strA
)。必须使用strcpy或memcpy将一个数组/指针的内容传输到一个数组。不能在C中分配数组(strB=strA
)。必须使用strcpy或memcpy将一个数组/指针的内容传输到一个数组。写入时:
char-strB[80]
strB不是指针,而是常量指针。这意味着您不能更改strB指向的地址,因此
strB=strA
不会做任何事。当你写:
char-strB[80]
strB不是指针,而是常量指针。这意味着您不能更改strB指向的地址,因此
strB=strA
不会做任何事情。
将标签从C++改为C,因为看起来你是在专门问C问题。这是不是?“代码> > STRA 和<代码> STRB<代码>不是字符串变量。C中没有字符串变量
,它们是数组。一个数组不能被分配给另一个数组。你的问题是FAQ,投票关闭。把标签从C++改为C,因为你似乎特别问C问题。这是不是?代码< > STRA 和<代码> STRB<代码>不是字符串变量。C中没有字符串变量
,它们是数组。无法将一个数组分配给另一个数组。您的问题是常见问题解答,投票关闭。