RickieOne 2022-07-27 13:10 采纳率: 66.7%
浏览 68
已结题

C语言基础指针问题。

我想问下C语言中,定义了指针类型 int * a,然后定义了变量 int b;
但是没有将指针a指向b的地址,两者没有关系
一般如果有将指针变量a=&b,的话,a就指向了b的地址
a就等于b变量,
那么a没有指向b的情况下,
a代表什么呢?

例如:若有说明,long *p,a,则不能通过scanf语句正确给输入项读入数据的程序段
*p = &a; scanf("ld",p);

就像上面一样,*p=&a, *p是代表什么呢?还有错在哪里嘞?

  • 写回答

3条回答 默认 最新

  • 於黾 2022-07-27 13:45
    关注

    你定义了一个指针,但是没有给它指向任何位置
    这就相当于你定义了一个int型的变量,但是没有给它赋初值
    但是只要它分配了内存就会有值,只不过是不知道什么程序运行残留的随机值
    指针也一样,它会有个值,指向一个内存随机地址
    就是通常所说的野指针
    如果你的指针是个野指针,它指向的不是你的程序申请的内存,而是系统其它内存
    那你在给它赋值的时候,就是要胡乱去改内存里一个值,这种操作是受系统保护的,不允许你随便乱改的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 7月27日