1.指標是什麼?
在電腦科學中,指標是程式語言中的乙個物件,利用位址,它的值直接指向存在電腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此,將位址形象化的稱為『指標』。意思是通過它能找到以它為位址的記憶體單元。
記憶體 :
最小記憶體單元----bit
1byte=8bit
1kb=1024byte
1mb=1024kb
1gb=1024mb
總結:指標就是變數,用來存放位址的變數(存放在指標中的值都被當成位址處理)。
2.指標和指標型別
指標定義方式為" type+* "
例
int num = 10;
int* p = # //p是指標變數,p裡存放的是num的位址
同理
char* pc = null;
int* pi = null;
short* ps = null;
long* pf = null;
double* pd = null;
**總結:**指標的型別決定了指標向前或者向後走一步有多大(距離)
3.指標的運算
1).指標±整數
#define n_values 5
float values[n_values];
float *vp;
for (vp = &values[0]; vp < &values[n_values];)
2).指標-指標
得到的是元素個數(絕對值)
比較於日期–例如,日期-日期為相差多少天
4.指標和陣列
int arr[10] = ;
printf("%p\n", arr);//首元素位址
printf("%p\n", arr+1);//第二個元素位址
printf("%p\n", &arr[0]);//首元素位址
printf("%p\n", &arr);//陣列位址,且陣列位址和首元素位址是一樣的
總結:陣列名表示的是首元素位址,除了兩個例外:sizeof(arr)//arr表示整個陣列
printf("%p\n",&arr)//arr表示整個陣列。
5.字元指標
char ch = 'w';
char* pc = &ch;
char* pstr = "hello";//將首字元的位址放到pstr裡,且*pstr不可被改,「 」是常量字串
printf("%s\n", pstr);
6.指標陣列
int* arr1[5];
char* arr2[5];
arr1表示乙個陣列,有五個元素,每個元素是乙個整型指標。
arr2表示乙個字元陣列,每個元素都是乙個字元指標。
7.陣列指標
int(*p)[10];
p先和*結合,說明p是乙個指標變數,然後指標指向的是乙個大小為10 個整型的陣列。
所以p是乙個指標,指向乙個陣列,叫陣列指標。即p裡存放的是陣列的位址。
8.函式指標
void test()
int main()
pfun可以存放add的位址。pfun先和*結合,說明pfun是指標,指標指向的是乙個函式,指向的函式引數為 int int,返回型別為int.
int add(int a, int b)
int main()
int main()
C語言指標深度剖析
1.下標法,用a i 來訪問陣列元素 2.指標法,ptr i 形式間接訪問 3.陣列名,用 a i 形式訪問陣列 4.指標下標法,ptr i 形式訪問陣列元素 1.直接訪問法 printf d a i j 2.指標訪問法 int ptr ptr a 0 for i 0 i 3 i for j 0j ...
深度剖析C語言的各種指標
該文章詳解了c語言中指標的概念與用法,對初學者了解c語言中指標這一重要概念有很大的幫助,其中變數的定義與使用一節尤為有價值。要點如下 1.指標是個變數,本質代表了乙個位址。2.變數拆解遵循由近到遠,從左到右的原則。3.c語言中,變數怎麼使用就怎麼定義 指的是書寫格式上保持一致 在c語言中,指標就是乙...
C語言深度剖析
c語言深度剖析 1,編譯器通常不為普通const唯讀變數分配儲存空間,而是將他們儲存在符號表中,使得它成為乙個編譯期間的值,沒有了儲存與讀記憶體的操作,使得它的效率更高。2,const int p p可變,p指向的物件不變。int const p p可變,p指向的物件不可變 int const p ...