關於DEV C++的數據不一致問題

關於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
a=8,c=16,而且根據x=ar[3]=4的結果看出數組是正確傳進去了的,很明顯是數據在傳輸過程中有問題啊,最後算到的結果都不是1+2+3+4=10了,而只有1+2=3。
在這裏插入圖片描述
但是這段代碼在hackerrank裏運行就沒事
在這裏插入圖片描述
有哪位大佬可以出來解答一下哇?

發佈了5 篇原創文章 · 獲贊 1 · 訪問量 218
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章