Fun函数中定义的形参接收的是int型数值,在主函数调用fun函数时的c其实传递的是c的值,要使这个结果正确,在fun()里把int c 改成int * c 调用时用fun(2,3,&c)即接收用指针,传递用地址
fun()函数的参数都是值传递,在fun()函数里c的值并不能传回到主函数,所以主函数里的c的值就是一个随机值。
这个问题分有以下几个知识点
==== 1. 变量的初始化 ====
局部变量是不会自动初始化的,经常有脏数据,不能预测其值。因此,int c;后c的值不可预测。
==== 2. 按值传递 ====
func是一个按值传递函数(C语言中没有按引用传递),func内获得的c和main中的参数c只是有一个值拷贝,它是副本,对副本的修改不会影响到原变量。
因此,printf时c保持原值,也就是int c;后的不可预测的脏数据。