scanf爲什麼有時用取地址符,有時不用---取址符:&

轉自:http://zhidao.baidu.com/link?url=mV57KbpCkJtQdcXbjFH6q4pWwR5w1XRKI0cURLLEn_ppTjY2PiNv2ripNxlVYNG2wBTyWOQIaX0hIrA55MA0Da

問:

        char nama[40];
        int a;
        scanf(%s,name);
        scanf(%d,&a);
        這兩個都是取得鍵盤輸入內容,爲什麼一個用了“&”一個沒有用?


答:

        
        因爲a是個整型變量名,所以SCANF要取得這個變量在內存中的地址;而name是char數組,name本身指向這個數組首地址。
        也就是說a裏面保存的是內容,name裏保存的本身就是個地址。

        &表示取地址,而數組不要後面的[]就表示首地址,故不用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章