如果所有未应用的指针都被赋予空值,同时防止应用空指针,就能够避免误用一个未初始化的指针。很多时候,未初始化的变量存有一些垃圾值,导致程序难以调试。星池 starpool 样编译器就不晓得应该调用哪一个函数。因而,C++ 将 NULL 定义成了 (int)0, 解决了函数重载的匹配问题,但却引入了另一个问题,还是这段代码:果输出有 n 个元素,最初一个元素的下标就是 n -1。
所以数组的下标如果小于 0,或者大于 n -1,就是数组越界拜访了,超出了数组非法空间的拜访。
C 语言自身是不做数组下标的越界查看,编译
那咱们找一下问题,星池 starpool 调试之后能够看到 bubble_sort 函数外部的 sz,是 1。难道数组作为函数参数的时候,不是把整个数组的传递过来?