实验目的
利用多级指针修改一个定义变量的值
实验要点
要通过调用函数修改实参的值必须要取实参地址
实验步骤
1.打开VS2010,创建新项目,选择空项目并命名,在源文件中添加新建项,选择C++文件并命名,后缀为.cpp
2.敲代码时先写出基础框架
# include <stdio.h>
int main()
{
return 0;
}
3.在纸上写出大致思路:首先声明一个被调函数g(),再在被调函数g()中定义一个变量(示例为i = 10)和指针变量p,然后定义再声明一个被调函数f(),在f()中间接修改i的值(示例为i = 66),代码如下:
#include <stdio.h>
//修改i的值
void f(int ** q)//定义q为int **类型的指针变量
{
**q = 66;//*q = p;**q = *p = i
return;
}
//输出修改后的值
void g()
{
int i = 10;//定义变量值
int * p = &i;//定义p指针变量指向i,并保存i的地址
f(&p);//被调函数,要改变实参值必须取地址作为实参
printf("i = %d\n",i);//输出i的值
return;
}
//主函数
int main()
{
g();//被调函数
return 0;
}
4.实验结果(若运行时cmd没有显示且没有报错,可以右键点击总工程名,点击属性,修改链接器下的系统中的子系统,选择控制台 (/SUBSYSTEM:CONSOLE)然后应用确定):
实验小结
理解以下变量之间的关系:
int i = 10;
int * p = &i;
int ** q = &p;
int *** r = &q;
*p = i;
**q = p;
***r = q;