指针小题2021.11.1

今天我们来学习一些关于指针各种写法和代表含义

 

 首先这是一个char类型的数组

strlen是一个得出数组大小的函数

第一种写法

arr代表首元素地址,那么strlen(arr)则为取这个给数组的大小,那么则为6

第二种写法

arr+0还是为首元素地址那么结果还是为6

第三种写法

首先我们要知道strlen函数的写法它接触的为首元素地址,这是*arr不是地址而是第一个元素a,那么strlen接受的就是元素a,就要把a当成地址使用a的ascii值为97,那么把97当作地址访问,那么就是非法访问.大家可以试一试

第四种写法

相当于把b传入,同上。

第五种写法

 给的是取地址arr即&arr,依然为首元素的地址其实与第一种写法相同

第六种写法

&arr---则为char(*p)[7]=&arr

而strlen的参数为const char*str

两个指针类型不兼容,但是能强制传入

&arr+1是从/0之后的1个数之前的大小那么那个数因为不知道则此处得到的为一个未知数

第七种写法

&arr[0]+1之后的数组长度那么因该为5

 

 

 第一种写法

sizeof(arr)是去数组中所有元素的个数包括/0,所以答案为7,arr单独放在sizeof中代表的是数组

第二种写法

此时arr没有单独放在siizeof中那么arr代表的就是首元素地址则arr+0还是首元素地址那么sizeof此时就为首元素地址的大小那么则为4或8

第三种写法

*arr代表的是首元素,那么这里就是首元素的的大小,则为1

第四种写法

与第三种大同小异,答案也为1

第五种写法

&arr为首元素的地址,那么也是4/8

第六种

同第五种4/8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值