intptr_t问题

笔试时遇到:

系统为32位时,代码结果:

    int a=10;
    int *p=&a;
    int *k=p+1;
    printf("%ld\n",(intptr_t)k-(intptr_t)p);
    // 32 位系统还是 64 位系统,int 类型的大小都是 4 字节,因此结果相同。

intptr_t变量是为了增强不同位数系统之间的兼容性而添加的变量。32位为int型4字节,64位为long int型8字节。

参考文章:

https://www.cnblogs.com/dongxb/p/16441246.html

posted @ 2025-01-18 18:20  JianYuBlog  阅读(13)  评论(0)    收藏  举报