c语言,结果为何只输出了一个指针的值,请指教?
发布网友
发布时间:2023-04-01 23:58
我来回答
共2个回答
热心网友
时间:2023-11-24 05:40
您好,这样的:
指针并不是因为C语言才有的。寻址、执行这么一个过程就是计算机的基本原理。尽管很多高级语言都没有指针,但程序的运行就是靠着不停的寻址来运行的。可执行的机器码、全局变量、局部变量和程序返回地址等这三块二进制数都存放在内存中。而只有cpu具有计算功能,他的计算实际上非常弱,每次只能算一个非常简单的算术运算或逻辑运算(但运算速度惊人)。要把程序代码和变量从内存传到cpu就需要通过找寻数据在内存中的地址,然后通过数据总线和地址总线传进cpu运算(那两个总线就是实实在在的电线!)。所以如果你了解了程序的机构就可以根据地址去做很多很灵活甚至是很诡异的操作。不仅如此,你想做的所有操作也都离不开地址。
即使让你自己去设计一个语言,你会发现,类似指针这么个概念也是不可缺少的,离开它计算机就无法工作了。。。
可以没有指针变量这么个东西,但是指针,地址还是会有的。
热心网友
时间:2023-11-24 05:40
是你没有 换行的原因, 加上换行 就看出来了.
最后一个printf 改成.
printf("%d\n", *p[i]);
追问前辈,能否讲解一下本质,谢啦
追答你运行一下,
你的程序是正确的.
只是格式没有换行, 所以你会看上去有点迷糊 ....
如果有其它问题, 我们再交流.
热心网友
时间:2023-11-24 05:40
您好,这样的:
指针并不是因为C语言才有的。寻址、执行这么一个过程就是计算机的基本原理。尽管很多高级语言都没有指针,但程序的运行就是靠着不停的寻址来运行的。可执行的机器码、全局变量、局部变量和程序返回地址等这三块二进制数都存放在内存中。而只有cpu具有计算功能,他的计算实际上非常弱,每次只能算一个非常简单的算术运算或逻辑运算(但运算速度惊人)。要把程序代码和变量从内存传到cpu就需要通过找寻数据在内存中的地址,然后通过数据总线和地址总线传进cpu运算(那两个总线就是实实在在的电线!)。所以如果你了解了程序的机构就可以根据地址去做很多很灵活甚至是很诡异的操作。不仅如此,你想做的所有操作也都离不开地址。
即使让你自己去设计一个语言,你会发现,类似指针这么个概念也是不可缺少的,离开它计算机就无法工作了。。。
可以没有指针变量这么个东西,但是指针,地址还是会有的。
热心网友
时间:2023-11-24 05:40
是你没有 换行的原因, 加上换行 就看出来了.
最后一个printf 改成.
printf("%d\n", *p[i]);
追问前辈,能否讲解一下本质,谢啦
追答你运行一下,
你的程序是正确的.
只是格式没有换行, 所以你会看上去有点迷糊 ....
如果有其它问题, 我们再交流.