B站大学学C语言-C语言核心刷题

137 阅读3分钟

切近学习者的C语言讲解合集_哔哩哔哩_bilibili

上述是我在B站发布的相应视频

一,

 

这题的答案应该是大于,因为,当表达式存在有符号类型和无符号类型时,统一按照无符号类型处理

二, 

 这个地方就是一个比较常见的考点了,字符串处理函数都是遇到\0结束的,都是依靠\0来发挥作用。所以一般数组用字符串处理函数时,都会认为的在字符串末尾加上\0.不然的话,程序有可能会崩溃,因为不一定找的到0.

三,

 这个题考的就比较基础,做这个题之前一定要知道,char类型的范围时-128~127;

所以说,这个题目比较坑。

 当减到-128时,下一个会减到127,有人会问为什么呢?

在计算机中,数据以补码的形式存在,再根据补码的运算你们再试试看,不就可以理解了嘛

四,

再就是这样的一个题目,虽然我觉得挺无语的,但是我觉得人家讲的没问题,现在的编译器是出了奇的强大,这样写的话程序是不会报错的,且是能正常运行的

但是,人家说这个可能会有一个特殊的bug,就是说,i是取了内存中的一块地址,但是那个地址在之前的时候有可能已经被用过了,虽然数据被覆盖了,但是使用一次过后,有可能会将之前该位置存储的数据暴露出来了,从而导致bug,这个我也不是很懂,交给评论区的懂哥们了。

五,

 这个题目的答案是5,2000000

为什么呢?

很简单的一个考点,&数组名,和数组名的概念,所以第一个很容易解决。

那么第二个呢?

第二个就很容易走入一个误区,要知道(int*)a+1和(int)a+1是不一样的,这样的话就很好理解了,(int)a+1只走了一个字节,但是int*类型的指针又是四个字节,所以就是第一个元素的后三个字节加上第二个元素的第一个字节组成的数据。

就说这么多了,我觉得这几个题目还是比较有营养的了,值得大家看一看,基础好一点的就会很容易理解,如果你看的不会太容易懂,那么你的基础还是有待提高。加油哦!

对了,大家也可以去看看人家的视频,毕竟我说的只是我自己对那些内容的理解,可能并不全面。

C语言必刷的十道题丨10道题贯穿C语言核心_哔哩哔哩_bilibili