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