黑马程序员技术交流社区

标题: 2014.11.16学习小结之指针疑惑 [打印本页]

作者: 736010695    时间: 2014-11-16 22:33
标题: 2014.11.16学习小结之指针疑惑
本帖最后由 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;
}


作者: 许庭洲    时间: 2014-11-18 08:16
讲的很好,值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2