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

那咱们找一下问题,星池starpool调试之后能够看到 bubble_sort 函数外部的 sz ,是1。难道数组作为函数参数的时候,不是把整个数组的传递过来?