指针讲解(收尾+题目)

一.sizeof和strlen对比:

      1.sizeof:

          在学习操作符的时候,我们学习了 sizeof sizeof 计算变量所占内存,内存空间⼤⼩的,单位是字节,如果操作数是类型的话,计算的是使⽤类型创建的变量所占内存空间的⼤⼩。sizeof 只关注占⽤内存空间的⼤⼩,不在乎内存中存放什么数据。

         

    上述代码中虽然在sizeof中让a+10但是到最后a的值并没有改变,这可以更好的说明sizeof只在乎你的数据是什么类型而不在乎数据是多少   其内部也不会去计算这个表达式。

       2.strlen:

             strlen 是C语⾔库函数,功能是求字符串⻓度。统计的是从 strlen 函数的参数 str 中这个地址开始向后, \0 之前字符串中字符的个数。 strlen 函数会⼀直向后找 \0 字符,直到找到为⽌,所以可能存在越界查找。

    上述代码中arr1是一个字符数组他本身创建时后面不会带有'\0‘所以当用strlen去计算其长度时出现的就是任意值因为不知道这个创建的数组'\0'在哪里也就不知道他什么时候停止计算量。而arr2是一个字符串创建完成后后面会加上一个'\0'。而strlen在碰到'\0'时就会结束所以计算结果不会加上'\0'这个字符。

      3.sizeof和strlen对比:

            

       从上述代码就可以看出sizeof不管内存中存放什么只计算占据内存大小,strlen就就算字符串长度了,简单点理解就是去找'\0'的位置。

    二.数组和指针笔试题解析:

          1.对数组名的理解:

                   分析例题之前,首先分析一下数组名在不同的情况下分别表示什么:

                     1.在一般情况下:数组名是数组首元素(第一个元素)的地址。

                      2.在两种特殊情况下: 1. sizeof(数组名) - 数组名表示整个数组,计算的是整个数组                                                                的大小,单位是字节。

                                                           2. &数组名 - 数组名表示整个数组,取出的是整个数组的地址

          2.一维数组:

                 

                   

   

3. 字符数组:

     例1:

         1.sizeof:

           

        2.strlen:

        

     

       

       如果不将两个代码有问题的代码屏蔽掉,运行会出现问题。

       屏蔽之后的结果为:

          

      例2:

           1.sizeof:

             

     2.strlen:

         

   

     例3:

          1.sizeof:

            

           

     2.strlen: 

    

   4.二维数组:

      

      5.指针运算题目讲解:

         例1:

             

           

   例2:

       

    例3:

     

   例4:

      

       例5:

         

  例6:

   

  例7:

     

   由于电脑画图太过繁琐,手写解析如下:

      

  • 31
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值