C++把一个字符串用指针赋值给另一个字符串

#include<iostream> #include<string> using namespace std; int main() { char s[]="asdfghjk",b[20]; for(int i=0;i<20;i++) *(b+i)=*(s+i);//为什么不定义指针变量也可以呢? cout<<b; return 0; } 我自己写的,但我自己也不明白了: 那一行的*是什么意思,也没有定义指针变量 啊

#include<iostream>
#include<string>
using
namespace
std;
int
main()
{
char
s[]="asdfghjk",b[20];
strcpy(b,a);
//直接使用字符串拷贝就可以了
cout<<b;
return
0;
}
如果是char
*b
=
a的话只是把a和b所指向的内存一样,如果修改了a的值则b的值也会同时进行修改。如果是
for(int
i=0;i<20;i++)
*(b+i)=*(s+i);或strcpy(b,a)则修改a的值不影响b;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-27
偶们老师教的数组的名字就是一个指针,指向这个数组的开始地址,所以指针和数组是几乎统一的,换句话将就是*(b+i)=*(s+i)等价于b[i]=s[i]