爲什麼會出現在結果的差時,我打電話的空隙函數內部的陣列,並且當我調用的空隙函數內標:差異結果
傳遞數組成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'未初始化。 –