为什么会出现在结果的差时,我打电话的空隙函数内部的阵列,并且当我调用的空隙函数内标:差异结果
传递数组成void函数:
#include <iostream>
const int n_cells = 1;
using namespace std;
void function1(int c[n_cells], int a, int b)
{
c[0] = a + b;
}
int main(){
int a = 3;
int b = 4;
int c[n_cells];
function1(c, a, b);
cout<<"c = "<<c[0];
return 1;
}
结果:
C = 7
传递一个标量成void函数
#include <iostream>
using namespace std;
void function1(int c, int a, int b)
{
c = a + b;
}
int main(){
int a = 3;
int b = 4;
int c;
function1(c, a, b);
cout<<"c = "<<c;
return 1;
}
结果:
C = 2130567168 //一些垃圾值
P.S.对于为什么我每次收到与上面给出的相同垃圾价值的任何评论?
编译时打开警告。如果您使用的是GCC,请以“-Wmost”开头。一个好的编译器会警告你在第二个程序中'c'未初始化。 –