-3

谁能简要解释一下这些说明符是如何工作的……我搜索了很多关于它们的信息,但仍然对它们感到困惑。(我有一台 32 位电脑)。

输出图像

#include<stdio.h>

int main()
{
    int v,*p;
    v=3;
    *p=v;
    printf("the value of  v = %d \n",v);
    printf("the address of  v = %d \n\n",&v);

    printf("the value of  v = %p \n",v);
    printf("the address of  v = %p \n\n",&v);

    printf("the value of  v = %u \n",v);
    printf("the address of  v = %u \n\n",&v);

    printf("the value of  v = %x \n",v);
    printf("the address of  v = %x \n\n",&v);

    printf("value stored through p  = %d \n",*p);
    printf("address of p = %d \n\n",p);

    printf("value stored through p  = %p \n",*p);
    printf("address of p = %p \n\n",p);

    printf("value stored through p  = %u \n",*p);
    printf("address of p = %u \n\n",p);

    printf("value stored through p  = %x \n",*p);
    printf("address of p = %x \n\n",p);


    return 0;
}
4

1 回答 1

1

%d并且%u用于以正常的十进制格式打印数字。除非您添加前导零的选项,例如%05d打印至少 5 位带前导零的数字,否则它会以最紧凑的格式打印,因为这是人类通常更喜欢查看数字的方式。

%p用于打印内存地址。这以与实现相关的格式打印。由于它通常是供程序员使用的,因此十六进制是最常见的格式。如果它们总是相同的长度,通常也最容易处理它们,因此显示了计算机体系结构的最大尺寸。

于 2020-07-08T04:14:28.607 回答