一、學習目標
- 了解指針的概念
- 了解指針的使用方法
- 了解雙重指針
目錄
C語言真的很難嗎?那是你沒看這張圖,化整為零輕松學習C語言。
第一篇:(一)脫離學習誤區
第二篇:(二)C語言沒那么難簡單開發帶你了解流程
第三篇:(三)輕輕松松理解第一個C語言程序
第四篇:(四)C語言的基本數據類型及變量
第五篇:(五)C語言的變量、常量及運算
第六篇:(六)輕輕松松了解C語言的邏輯運算
第七篇:(七)C語言的循環分分鐘上手
第八篇:(八)了解基本數組還不是那么簡單
第九篇:(九)C語言二維數組與循環嵌套
第十篇:(十)C語言的指針原來是這樣
第十一篇:(十一)C語言自定義函數真的很簡單
第十二篇:(十二)原來結構體是這么回事
第十二篇:(十三)socket服務端編寫
C語言新手的100個報錯解法
歡迎大家關注公眾號,公眾號每滿1024及1024倍數則會抽獎贈送機械鍵盤一份+IT書籍2份喲~
二、了解指針的使用方法
指針在C語言中指指向一個內存地址的數據類型。在C語言中,變量是有一個內存地址表示它的存儲位置,這個位置就像你家的門牌號一樣表示你家具體位置的一個索引;例如某某某市某某區某某鎮某某村某某街道幾號。指針可以指向變量所在的地址,從而獲取到當前地址所存儲的值。
2.1 了解指針的使用方法
首先看一下在C語言中,指針如何指向一個變量的,如下代碼:
int *p;
int a=10;
p=&a;
以上代碼使用 int 修飾一個指針p表示指針指向一個整型變量,在聲明的時候需要使用*加變量名表示一個指針;隨后定義了一個變量a值為10;最后使用取地址符號&取得a的地址并把改地址賦值給p指針變量。
指針的聲明格式為:
類型 *指針名;
我們查看一個完整的示例:
#include<stdio.h>
void main(){int *p;int a=10;p=&a;printf("%d\n",*p);
}
以上代碼之前已經了解過了一部分,這里著重注意printf("%d\n",*p);
,這局代碼中輸出了p的值,由于我的要求是輸出指針p所指向的變量a所存儲的值,所以在這里使用了取值符號 *,表示獲取指針p指向變量的內容。
結果如下:
2.2 多重指針
多重指針是指向指針的指針。
查看示例:
int *p,**p1;
int a=10;
p=&a;
p1=&p;
以上代碼中,定義了兩個指針,一個為p另一個為p1;在這里可以發現第一個p使用了一個“*”,p1則使用了兩個 “ * ”;使用一個“ * ” 表示當前指針指向的是一個變量,使用兩個 “ * ”表示當前指針需要指向一個指針,所指向的指針指向了一個變量;也就是說指針需要指向一個變量,中間不存在指針,則使用一個 “ * ”,指針指向一個指針,指針再指向一個變量則需要兩個“ * ”,以此類推,多一個指針則加一個 “ * ”。
隨后定義了一個變量a值為10,使用p指向了a,隨后p1指向了指針p。
查看完整示例:
#include<stdio.h>
void main(){int a=10;int *p,**p1;p=&a;p1=&p;printf("%d\n",**p1);
}
運行結果如下:
指向兩個指針的指針程序如下:
#include<stdio.h>
void main(){int a=10;int *p,**p1,***p2;p=&a;p1=&p;p2=&p1;printf("%d\n",***p2);
}
運行結果如下:
五、總結
通過以上描述與講解,我們了解了以下幾點內容:
- 了解了指針的概念
- 了解了指針及多重指針的使用方法