指標是乙個變數,其值是另乙個變數的位址,位址代表的是在記憶體中的位置。
需要記住的是,陣列變數本身就是乙個指標。
int *ip; /* 乙個整型的指標 */
double *dp; /* 乙個 double 型的指標 */
float *fp; /* 乙個浮點型的指標 */
char *ch; /* 乙個字元型的指標 */
其實指標永遠都只是乙個代表乙個位址的十六進製制數,所謂的型別,指的是指標指向的變數的型別。
//通過&運算子獲取了i的位址並儲存到intp中去
int *intp; = &i;
指標可以進行運算:++、--、+、-
此外,指標還可以用關係運算子進行比較,如 ==、< 和 >
int intarr = ;指標還可以指向指標//先定義乙個指標執行陣列第乙個元素
int *intarrp = &intarr[0];
//自增一下看看結果(每增加一次,它都將指向下乙個整數字置)
intarrp++;
int data = 5201314;結構體中對指標的使用會稍微特殊一點,主要因為結構體本身的特殊性,想使用結構體中的乙個值,一般分為通過結構體自身和指向結構體的指標二種情況,具體看下面的例子:int *p1 = &data;
int **p2 = &p1;
printf("%d\n", data); //都是5201314
printf("%d\n", *p1);
printf("%d\n", **p2);
struct node
;//先建立乙個結構體資料
struct node node;
node.val = 1;
struct node *nodep; //建立乙個指向剛剛的結構體的指標
nodep = &node;
printf("%d\n", nodep->val);//指向結構體的指標用->
printf("%d\n", node.val);//結構體自身用.
關於C語言中的指標
1 對於已定義的某個變數的讀取 通過該變數來訪問它的值 通過該變數的儲存位置讀取數值 指標 作業系統會將所有的記憶體單元進行編號。關於32位作業系統與64位作業系統支援的最大記憶體。計算機底層使用二進位制進行管理,所以32位作業系統支援2的32次方個編號,即4g的記憶體位址。int a 1 int ...
關於C語言等程式中指標相關的問題
凡是學過程式設計的人,特別是從c起步的,都會去學習乙個叫做指標的東西,而且好多人都會被卡在指標這裡,覺得特別難以理解,不知道指標到底是乙個什麼東西,也不知道什麼時候使用指標,什麼時候不使用指標。其實指標並沒有那麼複雜,關鍵是要理解透徹。我們編寫程式,不管是什麼語言程式設計,無論是面向過程還是物件導向...
C語言中關於const與指標結合的理解
這裡的const要保護的就是資料不能被修改!單獨使用的話,可能就像 define一樣,但是如果是函式引數呢?指標形式的 比如我要把乙個列表裡的內容顯示出來,可能會定義這麼個函式 typedef struct list data void listshow data const data 這個時候我就...