關於DEV C++的數據不一致問題
我寫了一個對數組求和的函數,並且在hackerrank裏可以整行運行,也就是網站給的練習題中的第二題。在DEV C++我寫的代碼如下:
#include <stdio.h>
using namespace std;
int simpleArraySum(int ar[]) {
int x=ar[3];
int a=sizeof(ar);
int b=sizeof(ar[1]);
int count=sizeof(ar)/sizeof(ar[0]);
int sum=0;
for(int i=0;i<count;i++){
sum+=ar[i];
}
return sum;
}
int main(){
int ar[]={1,2,3,4};
int c=sizeof(ar);
int result=simpleArraySum(ar);
cout<<"result="<<result;
return 0;
}
可以看到變量c和a的值應該都等於sizeof(ar),但是當我在進行調試的時候發現出現了問題,二者不一致。調試的結果如下圖:
a=8,c=16,而且根據x=ar[3]=4的結果看出數組是正確傳進去了的,很明顯是數據在傳輸過程中有問題啊,最後算到的結果都不是1+2+3+4=10了,而只有1+2=3。
但是這段代碼在hackerrank裏運行就沒事
有哪位大佬可以出來解答一下哇?