整形数据用指针遍历,结束条件是啥?用NULL为啥不对?

QQ2627707977 |浏览210次
收藏|2022/10/25 03:06

满意回答

2022/10/25 03:20

你的程序肯定不对,能运行也是你的幸运了(linux下就可能报错了)你的int arr[] = {5,3,6,1};对arr,它只有4个成员,且理论上后面肯定没有NULL的(C++的整形数组从来就没有说是NULL结尾的)所以你的if (*p!=NULL )及for (int* pp = p + 1; *pp!=NULL; pp++) 中的*pp!=NULL;完全不正确因为最后的不是NULL,所以*p会引起下标溢出的对C++的普通数组,若做为参数,它除了本身(首地址指针外),还必须将长度作为参数,这个也是C++很基础的内容了。

whoami1978

其他回答(0)
0人关注该问题
+1

 加载中...