現(xiàn)在學(xué)習(xí)C++,書中看到了以下例程:#pragma hdrstop#include <iostream>#include <cstring>using namespace std;char *getname(void);//---------------------------------------------------------------------------#pragma argsusedint main(int argc, char* argv[]){char *name;name = getname();cout << name << " at " << (int *)name << endl;delete [] name;name = getname();cout << name << " at " << (int *)name << endl;delete [] name;return 0;}//----------------------------------------------------------------------------char *getname(){char temp[80];cout << "Enter last name: ";cin >> temp;char *pn = new char (strlen(temp) + 1);strcpy(pn,temp);return pn;}程序的大致意思知道了,但是不明白里面的(int *)name是什么意思?應(yīng)該是代表輸出name的地址吧?
2 回答

鴻蒙傳說
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
定義一個(gè)int型的指針
例如:
123 | int *p; //定義一個(gè)指向int型變量的指針 char *p1; //定義一個(gè)指向char型變量的指針 int **p2; //定義一個(gè)指向int型指針的指針,即指向指針的指針 |

慕容708150
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
name本身是一個(gè)char*型的變量,就是一個(gè)指針,指向輸入的名字字符串的首字符的地址。如果直接輸出name,輸出的就是名字字符串。
(int *)是將name轉(zhuǎn)換為指向int型變量的指針,所以再用cout 輸出,結(jié)果就是該名字字符串的首字符的地址。
- 2 回答
- 0 關(guān)注
- 4316 瀏覽
添加回答
舉報(bào)
0/150
提交
取消