10.15 下午 上课中的笔记

发布于 7 天前  924 次阅读


数组越界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,去死

届ける言葉を今は育ててる
最后更新于 2024-10-19