爲什麼不這項工作:C++:新,瞭解內存問題
片段1:
int *a = new int[6]; (*a)[0]=1;
,而這是工作
片段2:
int myint = 0; int *ptr = &myint; *ptr=1;
我知道如果我在代碼片段1中使用a[0]=1
,它將起作用。但對於我來說沒有任何意義,對我來說,看起來a[0]=1
意味着:將值1設置爲應答[0]。換句話說,我把價值作爲記憶。相反,使用(*a)[0]=1
這對我意味着更有意義:將值1置於a [0]指向的值字段。
任何人都可以描述這種差異?
它可能對你更有意義。但是隨着其他開發者社區每次讀取代碼時都會感到困惑,這可能不是一個好主意。習慣該語言使用的約定,並改變您的行爲以匹配。 – 2010-06-30 21:36:34