C语言中,调用函数时,实参在函数里改变了值,那在主函数里是原来的值还是改变了的值呢?

例如(乱写的)
#include <stdio.h>
void main()
{
int a;
a=10;
void change(int b);
change(a);
printf("%d",a);
}
void change(int b)
{
b=15;
}
输出是10,就是没改变啦
但我看过有用指针做函数参量的输出会改变,为什么呢?哪些情况会改变,哪些不会呢?

INT是值类型 变量存储的是真实的值 传参时在目标函数内再用一段内存把值复制过去,改的只是change函数里的变量a main函数里的没变

指针是引用类型 变量存储的只是一个内存地址 传过去的也是内存地址,修改的是根据那个地址 找到的真实值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-20
void change(int* b)
{
*b=15;
}
这样就会改变
需要理解指针的定义。
相似回答