相关疑难解决方法(0)

C中空指针的指针算法

当一个指针到特定类型的(比如int,char,float,..)被递增,其值增加该数据类型的大小.如果void指向大小数据的指针x递增,它如何获得指向x前面的字节?编译器如何知道添加x指针的值?

c pointers void-pointers pointer-arithmetic

162
推荐指数
7
解决办法
11万
查看次数

如果指针可以转换为任何类型(在 c 中),为什么要使用 void 指针?

我想了解真正需要一个空指针,例如在下面的代码中,我使用强制转换来能够以不同的方式使用相同的 ptr,那么如果可以强制转换,为什么真的有一个空指针?

int main()
{
    int x = 0xAABBCCDD;
    int * y = &x;
    short * c = (short *)y;
    char * d = (char*)y;
    *c = 0;
    printf("x is %x\n",x);//aabb0000
    d +=2;
    *d = 0;
    printf("x is %x\n",x);//aa000000

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

c pointers void

2
推荐指数
1
解决办法
263
查看次数

标签 统计

c ×2

pointers ×2

pointer-arithmetic ×1

void ×1

void-pointers ×1