深入理解指针

发布时间:2024年01月06日

本文是根据自己的理解而写,如有不对,请多指正。

今天我们来深入了解指针,我们将配合习题跟大家一起来讲解,我们看下面这张图,其实sizeof的最核心的知识就是他计算的是括号中的类型大小。

sizeof在计算时是不会去看你里面的数据是什么的,它仅仅需要了解他的类型就能计算出大小,还要注意的一点是,sizeof返回的是unsigned int类型,接受时可能符号位的问题导致数据错误。

接下来介绍strlen函数,

size_t strlen ( const char * str );

返回类型是size_t,也就是无符号整形,接收类型是char*类型的地址,const表示该地址指向的内容不能被修改,在我前面的博客中详细讲了const的用法,大家可以去看看,strlen的原理就是根据地址一直往后找,直到找到'\0'为止。

这里我们特别容易疏忽的一点就是arr2数组其实有4个元素,只是反斜杠0隐藏起来了,我们可以通过监视看到

接下来,我们首先得清楚一点就是一个数组的数组名代表什么,如果你看到这里,那么你就只要记住两个特殊情况便可以把它记住,第一,在sizeof(数组名)中,这是的数组名代表的是整个数组,第二在&数组名是,这里的数组名代表的是整个数组名的地址,其他情况下,数组名代表的都是数组首元素的地址。

下面我们来看题,你们可以自己先试试,然后再看我的来理解

这里出现了一些随机值和非法访问的问题,其实我不太理解超出数组访问难道不也是非法访问吗,有没有大神评论区解答一下

我们再来看下面的一道题

我们把难度再次升级,看题

接下来我们看今天最后一道题,如果我们将二维数组引进又会有怎么样的不同和相同呢?

小编给大家抛出一个疑问,数组同上面那种图片

我会积极吸取大家的意见,共同进步,谢谢大家!

文章来源:https://blog.csdn.net/2301_81284698/article/details/135404513
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。