原文:int a[5]={1,2,3,4,5}; int *p=(int*)(&a+1); printf("%d",*(p-1)); 答案為什么是5?

這個問題的關鍵是理解 amp a a是一個數組名,也就是數組的首地址。對a進行取地址運算符,得到的是一個指向數組的指針 這句話尤為重要 也就相當於int p amp a p是一個指針,它指向的是一個包含 個int元素的數組 那么執行p 后,p的偏移量相當於 p sizeof int 而程序中強制將指針p轉換成一個int 那么 p 其實就是 p sizeof int 所以,p 指向了數組中得最后一個 ...

2015-06-12 17:46 0 4033 推薦指數:

查看詳情

int *p()與int (*p)()的區別

int *p()是返回指針的函數 int (*p)()是指向函數的指針 返回指針的函數: int *a(int x,int y); 有若干個學生的成績(每個學生有4門課程),要求在用戶輸入學生序號以后,能輸出該學生的全部成績。用指針函數來實現 ...

Sun Sep 20 05:59:00 CST 2015 0 8499
int *pint **p的區別

int *p:一級指針,表示p所指向的地址里面存放的是一個int類型的值 int **p:二級指針,表示p所指向的地址里面存放的是一個指向int類型的指針(即p指向的地址里面存放的是一個指向int的 一級指針) 例如: int i = 10;//定義了一個整形變量 int *p ...

Mon Dec 30 05:01:00 CST 2019 0 1925
int *p[3]和int (*p)[3]區別

這兩個其實是數字指針和指針數組的區別。我們一個一個來說明:int *p[3];//定義了一個三維數組,其中的每個元素p[0]、p[1]、p[2]都是指向int變量的指針。int (*p)[3];//定義了一個指針,這個指針是指向一個三維數組的。兩者之間的區別和聯系可以用一個二維數組來闡述 ...

Fri Aug 18 18:20:00 CST 2017 0 1899
int *p[4]與int (*q)[4]的區別

以上定義涉及兩個運算符:“*”(間接引用)、“[]”(下標),“[]”的優先級別大於“*”的優先級別。 首先看int *p[4],“[]”的優先級別高,所以它首先是個大小為4的數組,即p[4];剩下的“int *”作為補充說明,即說明該數組的每一個元素為指向一個整型類型的指針。int *p ...

Sun Nov 29 22:39:00 CST 2015 0 3823
int* &p 講解

這個是指針的引用 通俗的講就是給原來的指針重新起一個名字,使得兩個指針的意思是相同的。 這里有一篇文章的地址:https://zhidao.baidu.com/question/334477425.html int *(&p)是指針變量的引用。 指針變量同普通變量一樣,使用 ...

Tue Mar 10 02:00:00 CST 2020 0 966
const int *p;int *const p;區別及用法

在單片機程序設計中,我們經常會用到const這個關鍵字,在有些單片機的編譯器中可能會是code(比如51系列單片機),但我們在學習C語言的時候,首先還是先學到的const。我們知道,const關鍵字的含義是"常量的,常數的,不變的"意思。我們最初學到的是cont int a = 5;或者const ...

Thu Jan 10 23:10:00 CST 2019 0 1098
int *p=NULL 和 *p=NULL有什么區別

  很多初學者搜無法分清這兩者之間的區別。先看下面的代碼:   這時候我們可以通過調試器查看p的值為0x00000000。這句代碼的意思是:定義一個指針變量p,其指向的內存里面保存的是int類型的數據;在定義變量p的同時,把p的值設置為0x00000000,而不是把*p的值設置 ...

Thu Aug 08 05:54:00 CST 2019 0 372
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM