指針是C語言中的變量數組
-由於是變量,因此用於保存具體值ide
-特殊之處,指針保存的值是內存中的地址函數
-內存地址是什麼?指針
內存是計算機中的存儲部件,每一個存儲單元有固定惟一的編號blog
內存中存儲單元的編號即內存地址內存
程序中的一切元素都存在於內存中,所以,可經過內存地址訪問程序元素。it
獲取地址io
-C語言中經過&操做符獲取程序元素的地址class
-&可獲取變量,數組,函數的起始地址容器
-內存地址的本質是一個無符號整數(4字節或8字節) 32位與64位
#include <stdio.h> int main() { int var = 0; printf("var = %d\n", var); printf("&var = %p\n", &var);//取變量的地址 return 0; }
打印了4個字節
指針定義語法:type *pointer
-type - 數據類型,決定訪問內存時的長度範圍
-* -標誌,意味着定義一個指針變量
-pointer -變量名,遵循C語言命名規則
#include <stdio.h> int main() { char *pChar; 1字節 short *pShort; 2字節 int *pInt; 4字節 float *pFloat; double *pDouble; 8字節 return 0; }
指針內存訪問:*pointer 訪問操做符,訪問內存中的數據
-指針訪問操做符(*)做用於指針變量便可訪問內存數據
-指針的類型決定經過地址訪問內存時的長度範圍
-指針的類型統一佔用4字節或8字節
即:sizeof(type*)==4 或 sizeof(type*)==8
指針程序示例
#include <stdio.h> int main() { int var = 0; int *pVar = NULL; printf("1. var = %d\n", var); printf("1. pVar = %p\n", pVar); pVar = &var; *pVar = 100; printf("2. var = %d\n", var); printf("2. pVar = %p\n", pVar); return 0; }
指針是C語言中的變量(本質爲容器)
指針專用於保存程序元素的內存地址
可以使用*操做符經過指針訪問程序元素自己
指針也有類型,指針類型由數據類型+ * 構成