首先,來一段**:
void main()
; int *ptr=(int *)(&a+1);
printf("%d,%d",*(a+1),*(ptr-1));
}
列印出來的值為多少呢? 這裡主要是考查關於指標加減操作的理解。
對指標進行加1操作,得到的是下乙個元素的位址,而不是原有位址值直接加1。所 以 ,乙個型別為t的指標的移動,以sizeof(t) 為移動單位。 因此,對上題來說,a是乙個一維陣列,陣列中有5個元素;ptr是乙個int 型的指標。
(int *)(&a+1): 則是把上一步計算出來的位址,強制轉換為int * 型別,賦值給ptr。*(a+1): a,&a的值是一樣的,但意思不一樣,a是陣列首元素的首位址,也就是a[0]的首位址,&a是陣列的首位址,a+1是陣列下一元素的首位址,即a[1]的首位址,&a+1是下乙個陣列的首位址。所以輸出2
*(ptr-1):因為ptr是指向a[5],並且ptr是int * 型別,所以*(ptr-1)是指向a[4],輸出5。
與 的區別? 與 的區別?
相同點 和 都是表示與的邏輯運算子,其運算結果一致 不同點 邏輯與 當兩邊的表示式都為true的時候,整個運算結果才為true,否則為false。短路與 當第乙個表示式的值為false的時候,則不再計算第二個表示式 注意 還可以做位運算子,當表示式不是boolean型別的時候 例項1 public ...
this 與this的區別
this 與this的區別 相信很多剛接觸jquery的人,很多都會對 this 和this的區別模糊不清,那麼這兩者有什麼區別呢?首先來看看jquery中的 這個符號,實際上這個符號在jquery中相當於jquery 即 this jquery 也就是說,這樣可以返回乙個jquery物件。那麼,當...
this 與this的區別
this 與this的區別 相信很多剛接觸jquery的人,很多都會對 this 和this的區別模糊不清,那麼這兩者有什麼區別呢?首先來看看jquery中的 這個符號,實際上這個符號在jquery中相當於jquery 即 this jquery 也就是說,這樣可以返回乙個jquery物件。那麼,當...