zoukankan      html  css  js  c++  java
  • [C]%p和%02x含义

       前言:

          嘿嘿,已经很久没有写博客了,最近有一些新收获得赶紧写下来。

          今天上了计算机组成原理的实验课,不过这种实验课真的太划水了,还是的课下自己搞。

    • %p的含义

        “%p”中的p是pointer(指针)的缩写,指针的值是一个表示地址空间中某个存储器单元的整数。

        printf函数族中对于%p一般以十六进制整数方式输出指针的值。

     1 #include <stdio.h>
     2 
     3 typedef unsigned char *byte_pointer;
     4 
     5 void showBytes(byte_pointer start, int len) {
     6     int i;
     7     printf("Address HexValue
    ");
     8     for (i=0; i<len; i++)
     9         printf("%p %02x
    ", start +i,start[i]);
    10 }
    11 
    12 int main(void){
    13     int a = 100;
    14     short b = 100;
    15 
    16     printf("int a = %d, 字节数: %d
    ", a, sizeof(a));
    17     showBytes((byte_pointer) &a,sizeof(a));
    18 
    19     printf("int b = %d, 字节数: %d
    ", b, sizeof(b));
    20     showBytes((byte_pointer) &b,sizeof(b));
    21 
    22     return 0;
    23 }

      输出为:

    所以,%p的实质即为将所指向的数据地址以十六进制的形式输出。

    注意:对于指针来说%p的打印的为所指向的数据地址。指针自己的实际地址 &p,用%p来打印。

    1 int main(){
    2     int *p = &a;
    3     printf("%p
    ", p);
    4     printf("%p
    ", &p);
    5     return 0;
    6 }

    (省略了头文件,懂意思就行)

    • %02x含义

         x代表以十六进制形式输出,02代表不足两位,前面补0输出,右对齐如果超过两位,则以实际输出。

  • 相关阅读:
    Delphi对接快递单的md5函数
    t+固定资产二维码打印工具2.01(支持微信查询)
    delphi 调用百度识别
    T+固定资产二维码卡片管理(外网版)
    Delphi 10.3.3 THTTPClient Post问题
    钉钉群机器人
    npm 命令集合
    php7的新特性
    ftp服务
    8.1 接口,接口也是一种类型
  • 原文地址:https://www.cnblogs.com/xzzheng/p/10726945.html
Copyright © 2011-2022 走看看