[問題] 關於指標與陣列
最近在自習c++,練習到指標與陣列的部分,練習書本範例時遇到以下問題
const int MAX=80;
char buffer [MAX];
char* pbuffer = buffer;
cout << endl
<< "Enter a string of less than "
<< MAX << " charasters:"
<< endl;
cin.getline(buffer, MAX , '\n');
while(*pbuffer)
pbuffer++;
cout << endl
<<"The string \"" << buffer
<<"\" has " << pbuffer - buffer <<" characters.";
cout << endl;
這是一個計算輸入文字並計算有多少字元的練習
問題1.
while(*pbuffer)
pbuffer++;
請問這部分是pbuffer指標位置每次加1,
直到發現*pbuffer所代表的內容發現是\0時停止嗎?
問題2.
<<"\" has " << pbuffer - buffer <<" characters.";
這行的部分我真的搞不懂,pbuffer是buffer指標,
到最後不是指到了buffer的最後一個字元的位置
那pbuffer代表的是"位置"但為什麼可以減代表陣列的buffer?
對不起,這部分我真的很混亂~"~
感謝大家的幫忙
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.161.19
推
11/01 01:26, , 1F
11/01 01:26, 1F
→
11/01 01:32, , 2F
11/01 01:32, 2F
→
11/01 01:34, , 3F
11/01 01:34, 3F
→
11/01 01:34, , 4F
11/01 01:34, 4F
→
11/01 08:29, , 5F
11/01 08:29, 5F
→
11/01 08:29, , 6F
11/01 08:29, 6F