A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 736010695 中级黑马   /  2014-11-16 22:33  /  734 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 736010695 于 2014-11-18 16:19 编辑

#include <stdio.h>
int main()
{
    /*
     不同类型数据对应的输出占位符:
     %d   int
     %c   char
     %f   double\float
     %s   字符串
     %ld  long int
     %lld long long int
     %d   short long
     %u  unsigned(最高位不当作符号位,不会改变内存的字节数)
     %zd或者%lu unsigned long

     char a //内存中占一个字节
     int b  //内存中占四个字节
     double //内存中占八个字节
     float  //内存中占四个字节
     long int //内存中占八个字节
     long long int //内存中占八个字节
     short long  //内存中占两个字节
     */


    //无论什么类型的指针变量,在内存中所占字节数都是八个
    char *p1;
    int *p2;
    double *p3;
    long *p4;
    //用sizeof输出以上指针变量的内存大小,验证结果都是8
    //sizeof返回值是unsignedlong,所用的占位符是%zd或%lu
    printf("p1=%zd\np2=%zd\np3=%zd\np4=%zd\n",
           sizeof(p1),
           sizeof(p2),
           sizeof(p3),
           sizeof(p4));//输出结果都是8

    /*什么类型的指针变量只能指向同类型的数据,否则在赋值和取值时
     指针会按照自己类型的内存大小取或赋值给对应的内存个空间*/

    return 0;
}

1 个回复

正序浏览
讲的很好,值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马