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

© LLLX77 中级黑马   /  2015-5-2 12:28  /  1079 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在基础测试中有一个地址传递改变变量值的问题,挺简单的,
现在我想问的是,在C语言中能否通过定义一个全局变量,然后通过值传递的方法改变变量的值呢??
#include<stdio.h>
extern a;
void change(int x);
void main()
{
    int a=10;
    printf("a=%d\n",a);
    change(a);
    printf("a=%d\n",a);
    getchar();
}

void change(int a)
{
    a=100;
}

这是我的测试代码,失败了,并没有改变变量的值,请问哪里错了吗??

4 个回复

倒序浏览
对C中的全局变量这块知识点不是很熟悉
回复 使用道具 举报
#include<stdio.h>
int a;
void change();
void main()
{
    a=10;
    printf("a=%d\n",a);
    change();
    printf("a=%d\n",a);
    getchar();
}

void change()
{
    a=100;
}
回复 使用道具 举报
成功了,不通过地址,通过全局变量改变值
回复 使用道具 举报
都是单向值传递,你可以看看讲那个变量作用域的视屏!如果通过函数改变值的话,可以用指针的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马