最近在自学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那个地址里并没有值。多谢楼上三位朋友的热心解答。
|
|
做死的写法,谁家的教材这么坑!
|