A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#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;
}

4 个回复

倒序浏览
#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赋给它
}
//我全都写上了注释,能理解吧?
回复 使用道具 举报
通过函数实现变量值的改变,如果被调用函数不是使用指针形式,将无法实现变量值的改变,这是一个很好的体现指针在函数调用时是地址传递,而其他的是值传递!
回复 使用道具 举报
多谢各位好心人
回复 使用道具 举报
aaa是一个接受整形指针的函数,main函数调用之并传入整数a的地址,aaa内完成对参数所指地址的复制,所以最后打印10,希望能帮助到你
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马