已采納回答 / DoDream
等號左邊的意思是定義一個函數指針pquadrate,將quadrate函數的地址賦給pquadrate,quadrate是一個返回值是int,有一個int參數的函數。推薦你一個不錯的網站,百度搜索C++技術網,第一個就是了,里面有一些C語言的教程,那些人寫得挺用心,通俗易懂,能學的東西還挺多,這個網站還有很多不錯的資源可以下載,例如電子書,IDE等,如果你技術上來了,還可以去做一下里面的練習小項目,感覺收獲豐富。
2015-10-26
已采納回答 / onemoo
編譯器不會對數組訪問越界進行檢查。因為數組和指針是有密切聯系的,很多時候編譯器無法確定你訪問的位置是否在合理的范圍內,所以編譯器就干脆對此不檢查了。 ?實踐中,有經驗的程序員經?;钣眠@種數組和指針的關系。當然,你這兩行代碼確實是錯的,對array[3]的訪問確實越界了。雖然能編譯通過,但運行時可能會發生錯誤。
2015-10-24
定義指針變量時在變量類型和變量名中間加個 *, 指針變量的值本身是一個地址,在使用指針變量時,如果,在指針變量前加一個*表示取指針變量的值表示的地址中的內容,如果不加*則表示取指針變量的值,就是指針變量存的地址。
2015-10-14
函數指針,不過說白了就是這樣:
int quadrate(int a);
// main中
int a=3;
int (*p)(int a);
p = &quadrate;
int s = (*p) (a);
//最后就相當于quadrate(a)
int quadrate(int a);
// main中
int a=3;
int (*p)(int a);
p = &quadrate;
int s = (*p) (a);
//最后就相當于quadrate(a)
2015-10-14
&a:返回變量a的內存地址
*a:用來保存變量a的內存地址
&和*運算符恰好相反。&運算符接收一個數據,然后告訴你這個數據保存在哪里;*運算符接收一個地址,然后告訴你這個地址中保存的是什么數據。
例:int *a = &a
*a:用來保存變量a的內存地址
&和*運算符恰好相反。&運算符接收一個數據,然后告訴你這個數據保存在哪里;*運算符接收一個地址,然后告訴你這個地址中保存的是什么數據。
例:int *a = &a
2015-10-14