zoukankan      html  css  js  c++  java
  • c语言中 %p的含义【转】

    本文转载自:http://blog.csdn.net/creat2012/article/details/44224217


    今天看到了一个%p,表示没有看到过。 = =。学习了。

           格式控制符“%p”中的p是pointer(指针)的缩写。指针的值是语言实现(编译程序)相关的,但几乎所有实现中,指针的值都是一个表示地址空间中某个存储器单元的整数。

    printf函数族中对于%p一般以十六进制整数方式输出指针的值,附加前缀0x(自测的输出没有加前缀0)。

    [cpp] view plain copy
     
    1. // 示例:  
    2.   int i = 1;  
    3.   printf("%p",&i);  
    4. //相当于  
    5.   int i = 1;  
    6.   printf("0x%x",&i);  

    对于32位的指针,输出一般会是类似0xf0001234之类的结果。

             %p存在的理由除了附加前缀输出的便利性以外(表示没有体验到 = =),如LS所说,指针的大小是不确定的,由实现决定。根据地址空间的大小,一般有16位、32位、64位的指针。尽管目前32位平台上的指针一般全是32位的,但旧的一些平台上可能有多种长度的指针(例如非标准的near、far、huge修饰的pointer)混用,无法用%x、%lx、%hx、%llx(对应int、long、short、long long)中的任意一种保证能输出所有类型的指针。

    %p 一个简洁的解释。。。 = = 。

  • 相关阅读:
    Redis杂谈
    General mistakes in parallel computing
    life of a NPTL pthread
    casting in C++
    function calling convention
    How exception works ?
    How `delete’ works ?
    How `new’ operator works ?
    老白的JAVA课程17 集合
    老白的JAVA课程16 卡片布局 javaBean
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/7991340.html
Copyright © 2011-2022 走看看