黑马程序员技术交流社区
标题:
这个程序是什么意思呢,请高手详解一下
[打印本页]
作者:
fangdanjames
时间:
2014-11-20 16:40
标题:
这个程序是什么意思呢,请高手详解一下
#include <stdio.h>
void aaa (int *n);
int main()
{
int a = 90;
aaa(&a);
printf("%d\n", a);
return 0;
}
void aaa(int *n)
{
*n = 10;
}
作者:
这样真的好么?
时间:
2014-11-20 19:31
#include<stdio.h>
void aaa (int *n);//函数声明,无返回值,指针n作为形参
int main()
{
int a = 90;
aaa(&a);//调用aaa函数,将变量a的地址传给aaa函数的形参n(这样调用可以理解为将&a赋给n,即n指向了a)
printf("%d\n", a);//调用函数之后将a的值输出
return 0;
}
void aaa(int *n)//aaa函数的定义
{
*n = 10;//*号在这里是取内容符,可以理解为将指针变量n指向的内存中的内容取出来。然后将10赋给它
}
//我全都写上了注释,能理解吧?
作者:
mahei521
时间:
2014-11-20 20:51
通过函数实现变量值的改变,如果被调用函数不是使用指针形式,将无法实现变量值的改变,这是一个很好的体现指针在函数调用时是地址传递,而其他的是值传递!
作者:
fangdanjames
时间:
2014-11-21 07:07
多谢各位好心人
作者:
hityu
时间:
2014-11-21 08:04
aaa是一个接受整形指针的函数,main函数调用之并传入整数a的地址,aaa内完成对参数所指地址的复制,所以最后打印10,希望能帮助到你
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2