对C语言中指针的部分小结(1)
一、指针:
1.指针是用来存放一个地址的变量,通过它存放的地址可以访问该地址处的值。
指针的定义举例:
int a=15;
int* p=&a;//int* 表示p是指向一个整型变量的指针,而p的值是a的地址;
若有
int a=10;
char* p=(char*)&a;//a是整型,p是指向字符型变量的指针,应将a的地址强制类型转换为char*
int* p中,* 表示p是一个指针,int表示指针p指向的对象是一个整形。
2.指针的大小:在32位平台是4个字节,在64位平台是8个字节。
3.指针的解引用操作
* 表示对改指针进行解引用操作,此时==*p的值是a的值==,即15.
若要对a的值进行修改,则对p进行解引用操作=
printf(“a=%d\n”,a);//a=20
4.指针-整数:仍表示指针(地址)
5.指针-指针:表示两地址之间的元素的个数
6.注意:允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。
7.指针和数组:
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
int *p = arr;//指针存放数组首元素的地址
8.二级指针:
用来存放一级指针地址的指针,二级指针指向一个一级指针变量
例如:
int a=20;
int* pa=&a;//把变量a的地址赋给一级指针
int** ppa=&pa;// 把一级指针的地址赋给二级指针
// 与paa最近的* 表示paa是一个指针变量,int* 表示paa指向的对象是整型指针变量
9.指针数组
其实质是一个数组,该数组的每一个元素均是指向同类型变量的指针变量.
int*parr[10];
(parr先与[ ]结合)