char a[20];
int *ptr=(int *)a;
ptr++;
//原来a是char*类型,强制转换为int*类型就是因为ptr是int*类型的吗?
//在ptr加1后,文章给出的解释是”原来ptr 是指向数组a 的第0 号单元开始的四个字节,此时指向了数组a 中从第4 号单元开始的四个字节” ,”第0号单元开始的第四个字节”该怎么理解?根据int的大小,ptr指向了更高位的四个字节处,为什么说是从第0个单元到了第4个单元?
希望得到高手的讲解
如果理解为整形指针值加1就是指向更高位的四个字节处的话 也就是从字符数组的第0个字符变为指向第3个字符了吗? 如果是这样的话,文章里的”第0个单元的第四个字节”这个位置该怎么理解?
追答一个int值普遍大小为4个字节 第零个单元的第四个字节 也就是下一个int值开始的地址
追问这里的”单元”是理解为4个字节吗?因为int是4个字节
追答可以这么理解 四个字节构成的单元内容
追问感谢!