default998 2022-08-01 18:25 采纳率: 100%
浏览 47
已结题

C语言指针程序--多级指针赋值问题

问题 为什么不能用二级指针通过函数直接给指针变量赋值,而一级指针却可以通过函数直接修改整型变量的值
问题相关代码

1、

include <stdio.h>

void f(int * p)
{
*p = 88;
}

int main(void)
{
int i;
f(&i);
printf("i=%d\n", i); // i=88

return 0;

}
2、

include <stdio.h>

void f(int ** q)
{
int i = 5;
*q = &i; //ok
//**q = 5; //error
}

int main(void)
{
int * p;
f(&p);
printf("*p = %d\n", *p);
return 0;
}

运行结果及报错内容 当f函数内部只有“ *q=5”一行代码时,运行结果为空,而用上面两行代码就可以成功输出p = 5
  • 写回答

5条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 8月9日
      • 已采纳回答 8月1日
      • 创建了问题 8月1日

      悬赏问题

      • ¥40 python,计算机程序运行结果很奇怪
      • ¥15 有关时间计算器的问题
      • ¥200 Chrome浏览器自动保存密码需要解密!来人
      • ¥18 关于#c语言#的问题:如何把下面几个代码放在一起编序号,然后输入对应数字运行对应代码,还可以返回重输
      • ¥30 windows下无法运行go test的问题
      • ¥15 多个Rigify骨骼 导入一起 后 没有 控制器面板
      • ¥15 想问一下sprak ada语言的pre和post怎么设
      • ¥15 使用python将分子模拟输出.gro文件
      • ¥15 港诡实录的背包系统拆解
      • ¥15 宽带IP网络路由器的初始路由表和最终路由表