指標的長度
指標初步練習
指標的賦值練習
加深指標的理解
總**1、指標用於存放位址
2、列印值*p
3、加深理解指標實驗*p=123
指標的長度:列印各種指標的長度,所有指標的長度為4個位元組
#include
#include
/** 指標的長度 是4個位元組(能夠傳任何型別的位址)
*/main()
四個小實驗 int i = 123;int* p; p = &i;
理解指標
1、指標和指標變數的關係
指標就是位址,位址就是指標
位址就是記憶體單元的編號
指標變數是存放位址的變數
指標和指標變數是兩個不同的概念
但是要注意: 通常我們敘述時會把指標變數簡稱為指標,實際它們含義並不一樣
指標裡存的是100, 指標: 位址–具體
指標裡存的是位址, 指標: 指標變數 – 可變
2、為什麼要使用指標
指標的重要性
直接訪問硬體 (opengl 顯示卡繪圖)
快速傳遞資料(指標表示位址)
返回乙個以上的值(返回乙個陣列或者結構體的指標)
表示複雜的資料結構(結構體)
方便處理字串
指標有助於理解物件導向
3、*號的三種含義
*號的含義
數**算符: 3 * 5
定義指標變數: int* p;
指標運算子(取值): *p (取p的內容(位址)在記憶體中的值)
#include
#include
/** 指標就是記憶體位址
記憶體位址就是指標
*/main()
新增如下**:*p = 100; // 賦值
#include
#include
/** 指標就是記憶體位址
記憶體位址就是指標
*/main()
如圖可理解為:
當通過知道記憶體位址的值之後修改它的值時會直接跳出迴圈
#include
#include
/** 指標就是記憶體位址
記憶體位址就是指標
*/main()
// 當通過知道記憶體位址的值之後修改它的值時會直接跳出迴圈
printf
("恭喜您,完成了遊戲!\n");
第乙個實驗: 如果修改 i 值, p值有變化嗎?
當我們在次列印p的值時,雖然i的值變為200了,但是是列印p的值,列印p的值與i的值(100,200),沒有關係。
#include
#include
/** 指標就是記憶體位址
記憶體位址就是指標
*/main()
如圖分析:
第二個實驗: 如果修改 p 值, i值有變化嗎?
當執行完p = &j;時p的位址值變了,但是i的值沒有變化
#include
#include
/** 指標就是記憶體位址
記憶體位址就是指標
*/main()
如圖分析:
第三個實驗: 如果修改 i 值, *p值有變化嗎?
#include
#include
/** 指標就是記憶體位址
記憶體位址就是指標
*/main()
如圖分析:
/** 指標就是記憶體位址
記憶體位址就是指標
*/main()
如圖分析:
/** 指標就是記憶體位址
記憶體位址就是指標
*/main()
手把手入門C語言 列舉
列舉中的變數是遞增的 預設是0開始 首元素的值是0 include include 列舉中的變數是遞增的 預設是0開始 首元素的值是0 定義乙個列舉 enum weekday main 測試列舉中的變數是遞增的 修改下面的 monday 0,tuesday,wednesday,thursday,fr...
C語言 指標高階 《手把手教你學C語言》
3.多級指標 3.2通過指標引用二維陣列 4.函式指標 對於普通的陣列,其一大缺點就一旦定義以後就無法改變其大小容量。這其實本質上是靜態記憶體的缺陷。靜態記憶體 對於系統分配的記憶體就是靜態記憶體也叫棧記憶體,比如定義的變數,函式等等都是由系統進行記憶體的分配。因而程式設計師自己無法靈活對其進行更改...
手把手入門C語言 靜態記憶體分配
特點 靜態記憶體是程式編譯執行後系統自動分配,由系統自動釋放,靜態記憶體是棧分配的 靜態記憶體分配由系統分配 由系統 把一級指標傳遞過去,二級指標能夠接收一級指標的位址 在main方法定義一級指標,但是賦值是在func方法賦值 include include 在main方法定義一級指標,但是賦值是在...