数组越界(Array Out of Bounds)问题是编程中常见的错误,指的是尝试访问数组中不存在的元素
在C语言中,数组索引是从0开始的
假设你定义了一个数组 a[55]
,这表示数组 a
拥有 55个元素,但它们的索引范围是从0到54。因此,虽然数组的大小为55,但最高的合法索引是54
//所以,[ ]这里面的数字指的是总的元素个数,0开始,那么最大的索引范围是a[54],并没有a[55]
可以在特殊的if语句中使用return 0;
这样就可以让满足if条件的东西 在执行f语句里面的表达后,直接结束,可以避免陷入不必要的循环
逗号运算符
int a = (1+1,b=2+2,3+3);
逗号运算符会从左到右进行表达式的运算,但最后只会对a输出最后一个表达式的值
所以1+1、2+2肯定会成为2和4,b的值也会被赋值为4,但是a只会等于6
我现在写出了一个错误代码‘
else if (1 <= x < 10)
这个问题很重要
1 <= x < 10
在C语言中会先进行 1 <= x
的比较(负号运算符-和赋值运算符=是从右到左,但我认为一般情况是从左到右,也符合我们常识),返回布尔值(即0或1),然后再与10比较。由于布尔值永远小于10,条件总是为真,导致这部分逻辑无法按预期执行
所以千万再不要写出这样的数学错误
要死啊,一个晚自习想一个题,她妈的第二次重新写还得花大半天,还有错误得借助AI,去死
Comments NOTHING