一 指標概念:
1.指標是變數,用來存放位址
2.指標變數中存的有效位址可以唯一指向記憶體中的一塊區域
3.區域性指標變數不初始化就是野指標
4.野指標是非常危險的操作,如果對野指標進行解引用操作會導致記憶體呼叫混亂一定要注意避免野指標
二 指標變數大小
以下系統中,int型別佔幾個位元組,指標佔幾個位元組,作業系統可以使用的最大記憶體空間是多大:
32位系統中: int型佔據 4 個位元組,指標佔據32位,也就是4個位元組,能使用的最大記憶體是2*2*2^30=4gb
64位系統中:int型佔據 4 個位元組,指標佔據64位,也就是8個位元組,能使用的最大記憶體是2^64 = 2^34 * 2^30 =2^34 gb
三 指標的使用
在c語言中,有驚天bug,那就是陣列在下面三種情況下,能隱式轉換為指標使用
1.陣列作為函式引數時會隱式轉換為指標操作
2.陣列名直接執行printf %p 操作時會隱式轉換為指標
3.陣列名參與算術運算時也會隱式轉換為指標
下面的**就是把指標作為引數傳入函式的例項:列印arr陣列的內容,不使用陣列下標,使用指標。
#include #include void printarr(int* arr, int size)
}int main(void) ;
int size = sizeof(arr) / sizeof(arr[0]);
printarr(arr, size);
system("pause");
return 0;
}
四 指標型別
指標變數的兩大要素:
1.int *,char* 是指的對應記憶體空間的大小(這是指標型別的體現 )
2.指標對應的記憶體位址是哪個址(這是指標值的體現)
五 使用指標逆置字串(技巧性高,需要掌握這個思維)
/******遞迴實現字串逆序*********/
void reversestring(char* str)
} int main(void)
六 二級指標的概念
二級指標也是指標,用來存放一級指標的位址
指標陣列: 是陣列 int* arr[4] = ; //表示多個元素
陣列指標: 是指標 int (*arr)[4] = null; //只表示指標本身
拓展理解: int a[4]; //a 為 int[4] 型別
同理: int b[5]; //b 為 int [5]型別
可知: a的型別 跟 b的型別完全不等
專題分綱目錄 邏輯強化
專題分綱目錄 均為索引,本綱為 邏輯強化 邏輯強化 01 復合推理 知識 練習 邏輯強化 02 復合推理 答案 解析 邏輯強化 03 真假推理 知識 練習 邏輯強化 04 真假推理 答案 解析 邏輯強化 05 分析推理 知識 練習 邏輯強化 06 分析推理 答案 解析 邏輯強化 07 削弱質疑 知識...
指標強化 部分總結
1 將字串轉換成整型數的函式 int atoi const char nptr 包含在stdlib.h標頭檔案裡。2 對形式引數使用const int sum const int ar,int n const告訴編譯器,該函式不能修改ar指向的陣列中的內容。可以保護陣列的資料不被修改,就像按值傳遞可...
雙指標專題
424.替換後的最長重複字元 給你乙個僅由大寫英文本母組成的字串,你可以將任意位置上的字元替換成另外的字元,總共可最多替換 k 次。在執行上述操作後,找到包含重複字母的最長子串的長度。如果我們按序遍歷每個字元開始計算符合條件的子串長度,對於每個子串,我們只需要以它的第乙個字元為不變字元。思路簡單,清...