木瓜可不可以生吃:int *p;scanf(“%d”,p)p是指针变量系统怎么找到p呢

来源:百度文库 编辑:高校问答 时间:2024/05/02 07:31:57
int a *p;p=&a,scanf(“%d”,&a),通过地址是把值放到a变量里,那如果是,scanf(“%d”,p)p是指针变量系统怎么找到p呢

其实scanf想要的只是地址,而不管你有没有在这个地址定义一个变量,它只需要那个地址,然后由格式串来确定向这个地址写整型数据还是别的什么类型数据。

其实scanf(“%d”,x)
不管哪个x是什么 scanf 都把它当地址
也就是说scanf(“%d”,地址) 所以系统根本不找p的
应为p = &a 也就是地址 如 20H
那么scanf(“%d”,20H);
就是这个样子的。

你定义 int *p 时, p有一个随机值,这个值是一个地址,当你用scanf("%d",p); 时,它把键盘输入的数存到这个地址中,但是这非常危险,如果这个地址原来没有数据,则不会发生任何问题,如果这个地址原来有重要数据则可能导至系统崩溃

在C中,指针在使用之前必须给它赋值。否则它就成了一个野指针了,这样使用是不正确的。

指针是用来保存地址值的,所谓的*p其实是对它所指向变量地址的值的引用,所以直接用p来保存一个值是不可行的

(26)有以下程序:
#include