C语言指针详解一
c語言指針詳解一
- 什么是指針
- 整型指針和字符指針
- 數組指針(是指針)的解析與指針數組(是數組)的區別
- 函數指針
什么是指針
①指針是個變量,用來存放地址
②指針的大小固定是4/8個字節(32位/64位平臺)。
③指針是有類型的,指針的類型決定了指針的±整數的步長,指針解引用操作時的權限。
指針可以根據指針指向的變量的數據的類型來分類。
有整型指針,字符指針,數組指針,函數指針等。
整型指針和字符指針
例如:
#include<stdio.h> int main() {int a = 5;int* p = &a;//整型指針--p存放int(整型)的地址的指針變量char c = 'a';char* cr = &c;//字符指針--cr存放char(字符)的地址的指針變量printf("%d ", *p);//p存放的是&a(也就是a的地址值)通過“*”來對p進行解引用---通過p存放的地址找到aprintf("%c ", *cr);//同上return 0; }p是整型指針–指向整型的指針–可以用來存放整型的地址
c是字符指針–指向字符的指針–可以用來存放字符的地址
從這里可以看出來上面的
③指針是有類型的,指針的類型決定了指針的±整數的步長,指針解引用操作時的權限。
這一點,因為char類型是占一個字節,所以其指針的+1所打印出來的地址值也是+1;
而int類型是占四個字節的,所以其指針的+1所打印出來的地址值是+4;
數組指針(是指針)的解析與指針數組(是數組)的區別
#include<stdio.h> int main() {int* p = NULL;//p是整型指針--指向整型的指針--可以用來存放整型的地址char* d = NULL;//d是字符指針--指向字符的指針--可以用來存放字符的地址//數組指針--指向數組的指針--可以用來存放數組的地址int arr[7] = { 1,2,3,4,5,6,7 };int(*str)[7] = &arr;//存放的是數組的地址--數組指針//*p是指針指向后面的數組,上面的p就是數組指針 int a = 1;int b = 2;int c = 3;int arr2[10] = { 0 };//整型數組--存放整型的數組char arr3[10] = { 0 };//字符數組--存放字符的數組int* arr1[7] = {&a,&b,&c};//指針數組--存放指針的數組//[]的優先級要高于*的優先級return 0; }數組地址的解釋
int arr[10] = { 0 };
arr–首元素的地址
&arr[0]–首元素的地址
&arr–數組的地址
函數指針
函數指針—指向函數的指針–存放函數地址的一個指針
與數組指針類似
總結
- 上一篇: python selenium与自动化
- 下一篇: mt4 指标 涨跌幅 颜色k线_通达信指