黑马程序员技术交流社区

标题: 有个疑惑需要大家帮忙 [打印本页]

作者: peiyu    时间: 2015-7-22 15:49
标题: 有个疑惑需要大家帮忙
#include <stdio.h>

int main(int argc, const char * argv[]) {
    //10的二进制00000000000000000000000000001010
    int num=10;
    printf("num=%d\n",num);
    //指针
    char *p=&num;
    printf("第一个字节的地址:%p 值:%d\n",p,*p);
    return 0;
}
我想问一下,printf里面的p 不需要定义一下吗?
作者: 408205555    时间: 2015-7-22 15:55
本帖最后由 408205555 于 2015-7-22 15:57 编辑

不需要重新定义,因为在上面已经定义了p是一个指针变量。
printf()里面的p表示地址,*p表示取值。输出后的地址就是num的地址。但是值只取一个字节(4位)。


作者: peiyu    时间: 2015-7-22 17:28
408205555 发表于 2015-7-22 15:55
不需要重新定义,因为在上面已经定义了p是一个指针变量。
printf()里面的p表示地址,*p表示取值。输出后的 ...

谢谢,我看的视频还没讲到指针。老师在这里用到了
作者: wy911011    时间: 2015-7-22 21:16
支持楼上。
作者: Mal    时间: 2015-7-22 21:24
p是Xcode自己规定好的  %p  输出地址
printf("第一个字节的地址:%p 值:%d\n",p,*p);
第二p 是你自己定义的指针变量
*p是变量的值
作者: 丁铭检    时间: 2015-7-22 21:34
你不是已经定义了吗?
作者: tingyuyisheng    时间: 2015-7-22 21:35
我也想学习学习
作者: 哒哒萌    时间: 2015-7-22 21:38
楼上是正解的
作者: 花漾    时间: 2015-7-22 22:23
p不用定义,类似%d
作者: peiyu    时间: 2015-7-23 08:58
花漾 发表于 2015-7-22 22:23
p不用定义,类似%d

谢谢,明白了




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