不清楚你是不理解这段代码还是不理解指针,所以先给你把代码注释一下。
#include <stdio.h>
void change(int *n); //函数说明
int main()
{
int a = 90; //定义了一个整型变量
change(&a); //调用函数change传入a的指针。
printf("%d\n", a); //打印变量a的值
return 0;
}
void change(int *n) //函数接收一个整型的指针
{
*n = 10; //把传入的指针对应的变量的值赋值成10
}
这段代码主要是看a的输出值是多少。
change函数有一个参数是(int *n),也就是一个指针变量。
change(&a)这句是把a的地址传入到函数中,不知道你是不是理解不了这个。
将a的地址传入函数void change(int *n)中后,n = &a,n变量里存的是a变量的地址而不是变量的值,所以*n的意义就是a变量的值 你也可以打印一下看看printf(“%d”,*n);的值是90. 然后 *n=10;就是将a的变量的值修改了。因为原来是90,现在执行*n=10之后就变成10了。最后printf输出a的值为10. |