黑马程序员技术交流社区

标题: 问一个基础题中值传递的问题 [打印本页]

作者: LLLX77    时间: 2015-5-2 12:28
标题: 问一个基础题中值传递的问题
在基础测试中有一个地址传递改变变量值的问题,挺简单的,
现在我想问的是,在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;
}

这是我的测试代码,失败了,并没有改变变量的值,请问哪里错了吗??
作者: LLLX77    时间: 2015-5-2 12:30
对C中的全局变量这块知识点不是很熟悉
作者: LLLX77    时间: 2015-5-2 19:54
#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;
}
作者: LLLX77    时间: 2015-5-2 19:58
成功了,不通过地址,通过全局变量改变值
作者: 霸王睡别姬    时间: 2015-5-2 22:13
都是单向值传递,你可以看看讲那个变量作用域的视屏!如果通过函数改变值的话,可以用指针的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2