指针知识总结:
1.int* pa = &a;//a是变量,&a是地址,pa是指针变量,一般我们称为指针,int为定义指针变量,大小一般是4个字节。
2.二进制存储的时候,小端在小地址,32位地址线,一个地址管理一个字节,2的32次方的地址,2的32次方字节,除1024得kb,再除以1024得mb,在除以1024得GB,结果为4GB。
3.指针的类型决定了一次能访问几个字节,还有每次向前或者向后走一步,走多大距离。int a = 0x11223344;//存放16进制的数字,11为一个字节,存放了4个字节。因为存放的是16进制的数字,四个比特位为一个数字,11就是八个比特位,一个字节。
4. int arr[10] = { 0 };
int p = arr;//数组名字就是数组的首地址
int* q = &arr[9];//这个是取数组里第九个元素的地址,所以要加取地址符。
5.// int arr[10] = { 0 };
// char* p = (char*)arr;//强制类型转换。这里转换只是转换指针处理字节的大小,和原本的数组没关系。
6.int sz = sizeof(arr) / sizeof(arr[0]);//数组的整个长度除以第一个元素的长度,等于数组中元素的个数。sizeof(数组名)代表整个数组的长度
7.// printf("%d\n", &a[9] - &a[0]);//两个地址相减得到的绝对值,是两个地址之间元素的个数,但是必须在一个数组里。
8.// printf("%p == %p\n", p + i, &arr[i]);,可以看出其实p和arr是一样的,所以读取数组中的字符也可以用p[i]来表示。
指针知识点
最新推荐文章于 2022-12-06 21:25:27 发布