读《C专家编程》笔记1

        最近忙着考试,都在复习,所以很少有时间写文章记录一下。

        昨天去图书馆借了几本书,其中有一本叫《C专家编程》。看了一点,发现书中举出的例子很微妙,平时真的没有发现,所以截图上来,做个笔记。

        读《C专家编程》笔记1_第1张图片

       看到结果,真的是很吃惊,这是因为不同类型作比较的时候,需要进行类型转换,书上说“if语句在signed int 和unsigned int 之间测试相等性,所以-1被升级成了unsigned int”,我想你一定知道后果了—— -1将会变得一个很大的数,所以条件为假,输出这个结果。


       第2次编辑——数组与指针

       以前没认真的调试过,今天看到数组与指针章节,我不禁去试了一下,继续看图。

       读《C专家编程》笔记1_第2张图片

       你看到了什么,我首先声明了一个字符数组和一个指针,然后将此指针指向字符数组。

       然后开始调试,观察他们的地址,仔细看就会发现chStr和&chStr的地址是相同的,而pchStr和&pchStr的地址是不同的。我按照书上的解释大概画出他们的地址分布,如下图。

读《C专家编程》笔记1_第3张图片

    所以当把他们都当成指针用的时候,偏移量的计算不是完全相同的。对于chStr,要找到第一个s,相当于* (chStr + 5),而对于pchStr,则是* (&(* pchStr) + 5),也就是先找到指针储存的地址,然后用那个地址来计算偏移量。

你可能感兴趣的:(编程,c,测试)