1樓:匿名使用者
上面說的都很對~ 不過我想樓主的題目好像是說陣列指標的問題,如果樓主是想要實現陣列指標的話
int *p = name; 是不對的,這個p只是乙個普通的int型別指標,並不是陣列指標
應該寫成 int (*p) [3] = &name;
這樣p才是乙個陣列指標, 而且是 int [3] 型別的陣列指標這樣的話cout << (*p)[0] << endl; 就可以正確輸出陣列中第乙個數的值10
2樓:1逝水_無痕
稍微改動下就行了:
#include
int main()
;int * p = name;
cout<<(*(p+0)) << endl;
return 0;
}首先p是乙個指標,雖然它指向了陣列,但指向的僅是當前陣列的首位址,不能用呼叫陣列元素的方法呼叫它。name[1]的值也就是*(p+0),以此類推
逝水無痕真誠為您解答!
3樓:陳冠鋼
這是因為
*p 已經代表了指向第0個元素的值,也即name[0]所以(*p)[0]不代表任何值,或者對於二維陣列是有意義的,但對一維陣列此處是多餘的表達,
更改為如下可以編譯通過
#include
using namespace std;
int main()
;int * p = name;
cout << (*p)<< endl; //若想輸出16,可以用 *(p+1)}
4樓:慕容醒言
沒有這個寫法,如果你想輸出第乙個元素,可以有兩個方法:cout int main() ;int * p = name; cout<
return 0;} 5樓:匿名使用者 #include using namespace std; int main() ;int * p = name; cout << p[0] << endl; // 不需要dereference} 6樓:流風回雪 使用*p或者p[0],就行了 此外*(p+1)=p[1] *(p+2)=p[2] c++問題,為什麼int*p=0可以表示為空指標,而int*p=100卻不能表示乙個位址呢? 7樓:匿名使用者 當然可以了. 只是約定成0 等於 空指標是乙個習俗一樣. 你如果寫乙個程式. 裡面統一約定成=2 是空指標也可以啊. 只是某些地方你判定乙個指標是否有效要麻煩一些. typedef 是 定義一種資料型別 就好像內建的資料型別如 int 它僅是乙個定義,不產生例項物件,即不分配任何記憶體,怎麼能給它賦值呢?對陣列賦初值的方法用for迴圈,在這裡還可用memset nod的記憶體分配在動態棧上,所以值不能確定,要初始化,必須使用顯式的方式。cdma980的回答是對的... 第5行錯誤 bmi float weight height 2 修改為 bmi float weight height height height 2 這種符號是給人看的,在python看來,這個是邏輯異或符號。正確的方式是這個 import math math.pow height,2 另外,寫程... printf n open file error.後面加一句 return 0 否則,fopen 出錯後仍會進入while。你的錯誤資訊是 main 已有,ffile11.obj 裡出現了,現在的程式是 file12。main 重複定義了。所以要查一下你的編譯和鏈結設定。一般簡單程式,我在dos黑窗...c指標陣列問題,C 中關於指標陣列的問題。
python報錯,python 為什麼會報錯。
C語言fscanf為什麼這樣子做會報錯同檔案下有file1 這個檔案且不為空