关于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里运行就没事
有哪位大佬可以出来解答一下哇?