c语言二级指针的步长是多少?
发布网友
发布时间:2023-03-05 22:25
我来回答
共1个回答
热心网友
时间:2023-07-08 13:38
指针没有步长这一说吧。
比如char *p = "abcdefg";
它的二级指针char *q = p;你说的步长,是指++p 与++q吗?这两个明显是相同的。
但是如果是 void *p = void (*) fun();
void *q = p; 这样子步长就没什么意义了,具体问题具体分析追问我说的步长就是int *p,p+1这样,这里p+1就是+sizeof int,如果再来个二级指针,int**pp=&p,那么pp+1步长是多少?是不是所有2级(包含)以上的指针等同于指针+1都等于+指针自身的占用字节,在64位下就是+8byte。后来想想好像这种指针的步长没有什么意义,是不是只有数组指针的步长才是有用的啊
追答反正你这么理解就行,指针加1,就是(同类型)的下一个地址,int就加4(34位)指针的指针也是指向下个地址(同类型)