說(shuō)明:
指針和數(shù)組基本等價(jià)的原因在于指針?biāo)阈g(shù)和C++內(nèi)部處理數(shù)組的方式。
將整型變量加1后,其值將加1;
將指針變量加1后,增加的量等于指針?biāo)赶虻念愋退嫉淖止?jié)數(shù)
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
在大多數(shù)情況下,C++將數(shù)組名解釋為數(shù)組第一個(gè)元素的地址,所以*****pw對(duì)應(yīng)的就是數(shù)組wangs第一個(gè)元素的值。將pw加1之后,pw指向的就是wangs數(shù)組的第二個(gè)元素對(duì)應(yīng)的地址, ***pw對(duì)應(yīng)的值也就為第二個(gè)元素的值。
指針和字符串
1.在cout和多數(shù)C++表達(dá)式中,char數(shù)組名、char指針以及用雙引號(hào)括起來(lái)的字符串常量都被解釋為字符串第一個(gè)字符的地址
2.應(yīng)使用strcpy()或strncpy()將字符串賦值給數(shù)組