说明:
指针和数组基本等价的原因在于指针算术和C++内部处理数组的方式。
将整型变量加1后,其值将加1;
将指针变量加1后,增加的量等于指针所指向的类型所占的字节数
double wangs[3] = {1000.0,2000.0,3000.0};
double *pw = wangs;
cout << "pw = " << pw << ",*pw = " << *pw << endl;
pw = pw + 1;
cout << "pw = " << pw << ",*pw = " << *pw << endl;
pw = 0x7fff5fbff650,*pw = 1000
pw = 0x7fff5fbff658,*pw = 2000
Program ended with exit code: 0
在大多数情况下,C++将数组名解释为数组第一个元素的地址,所以*****pw对应的就是数组wangs第一个元素的值。将pw加1之后,pw指向的就是wangs数组的第二个元素对应的地址, ***pw对应的值也就为第二个元素的值。
指针和字符串
1.在cout和多数C++表达式中,char数组名、char指针以及用双引号括起来的字符串常量都被解释为字符串第一个字符的地址
2.应使用strcpy()或strncpy()将字符串赋值给数组