逻辑上的易错点
- 数组越界:C++不做数组边界检查,定义int arr[5],下标范围是0~4,访问arr[5]会篡改内存数据。
- 循环逻辑问题:循环终止条件错误(如for(int i=0;i<=5;i++)本想循环5次,实际循环6次);
- 循环变量未更新(如while循环内忘写i++,导致死循环)。
- 条件判断易错:把赋值号=当判断号==(如if(a=1)恒为true,逻辑完全偏离);
- 多条件判断漏写逻辑符(如想判断a>0且a<10,误写if(a>0 a<10))。
- 指针相关坑:指针未初始化直接使用(野指针,操作会崩溃);new申请堆内存后,忘用delete释放(内存泄漏);重复delete同一块堆内存。
- 引用使用误区:定义引用时不初始化(引用必须绑定变量,不可独立存在);试图给引用重新绑定其他变量(绑定后不可改,操作引用即操作原变量)。
- cin与getline混用问题:cin读入后会残留回车符,后续getline会直接读取空行,解决方法是在cin后加cin.ignore()清空缓冲区。
查看19道真题和解析
滴滴公司福利 1784人发布