指针加法
指针的加法计算时需要调整,调整的权重是指针本身去掉一个*号,再求sizeof();
例如 int *p;p+1;加4字节;
double *p;p+1;加8字节。
知道了大体概念接下来做一道题加深一下理解
#include <stdio.h>
int main(){
int *p = (int *)10000;//定义地址为10000
printf("%d\n",p+1);//输出10004
printf("%d\n",p+4);//输出10016
printf("%d\n",(char *)p+4);//因为运算时要去掉*号,char长度为1字节,所以输出10004
printf("%d\n",(short *)p+4);//short长2,所以输出10008
printf("%d\n",(double *)p+4);//double长8,所以输出10032
printf("%d\n",(unsigned long long )p+1);//因为并没有*号,所以算普通字符,输出10001
printf("%d\n",(int ***)p+1);//去一个*号后是(char**)指针长度为4