指针知识点

指针知识总结:
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]来表示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值