VS调试时,如下图,当我把k换成-1的时候就可以成功调试了,但是C语言的 ‘||’用法,如果前面为真,后面不是不会再判断了吗,后面k++,也就没有越界了,但为什么还会报这样的错误

VS调试时,如下图,当我把k换成-1的时候就可以成功调试了,但是C语言的 ‘||’用法,如果前面为真,后面不是不会再判断了吗,后面k++,也就没有越界了,但为什么还会报这样的错误
如果要改的话,又该怎么改

img

找了一周终于找到原因了

img


https://blog.csdn.net/qq_39921135/article/details/130292412?spm=1001.2014.3001.5502

后面要加上括号,否则==优先级更低,还是会计算 s2.data[k]

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^