c语言中有符号和无符号数字

https://nju-projectn.github.io/ics-pa-gitbook/ics2022/why.html#数组求和
数组求和

int sum(int a[ ], unsigned len) {
int i, sum = 0;
for (i = 0; i <= len-1; i++)
sum += a[i];
return sum;
}

当len = 0时, 执行sum函数的for循环时会发生Access Violation, 即"访问违例"异常. 但是, 当参数len说明为int型时, sum函数能正确执行, 为什么?

答:当一个运算数是有符号,另一个是无符号时,c语言会强制将有符号转换为无符号;

posted @ 2023-03-06 09:58  14789ztt  阅读(86)  评论(0)    收藏  举报