如何理解int *number = 100

C语言 码拜 10年前 (2015-05-11) 1525次浏览 0个评论
 

        最近在自学c,看到指针这块有点糊涂

#include <stdio.h>

int main(void) {

    test1();
    test2();

}

void test1() {
    int *number = 100;
    printf("%d\n", number);
}


void test2() {
    int number = 100;
    int *number_pointer = NULL;
    number_pointer = &number;
    printf("%d", *number_pointer);
}

        代码中的test2方法我能理解,但是test1不能理解,指针变量不是存储地址么,为什么可以直接存储100呢?

15分
为什么不把100看成一个地址, 
地址实际上不也是一个整数吗
5分
请查阅”指针的初始化”相关资料.
20分
你那句就是把100作为一个地址存放到number这个指针变量里面。至于100这个地址上是否存放有一个整形变量,这个你心里应该是清楚的。至于输出正常因为你本身就是输出了number这个变量,而非这个地址里面包含的整型值。仅此而已。
哦,原来100是个地址啊,我一直看成一个int型数字了,现在明白了,我就说以前输出*number会失败,原来存入的是100的地址,但是100那个地址里并没有值。多谢楼上三位朋友的热心解答。
做死的写法,谁家的教材这么坑!

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明如何理解int *number = 100
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!