@[TOC]
前言:
- 博主实力有限,博文有什么错误,请你斧正!非常感谢!
- 本文讨论操作符 sizeof与函数strlen()
操作符sizeof()
sizeof是
操作符
,不是函数(!!!!!!!!)sizeof
只是
测定数据类型
(数组类型,指针类型等)在所占内存的大小,单位字节,
`不具有
`改变测定的数据
的性质取地址 操作符‘&’
如果取的是
变量
的地址,那就是变量的地址如果是数组名,那取得就是整个数组的地址
- 不可对地址取地址
在sizeof中,
数组名
不代表数组的首元素地址
,另外只有当数组名单独使用
时 才代表是整个
数组
&arr 与 & arr不是一个意思
*&arr 是取数组地址,后解引用得到数组& *arr 是先对数组首元素先解引用,后取其地址
size_t strlen( const char * str)
- strlen()的返回值类型是 size_t(无符号整形),参数类型是 char *指针(即使传入的是
其它的
数据类型都会强制转化为char *
)- strlen是计算字符串的长度,以
‘\0’
为计算结束标志
关于数组的必要理解
无论
一维
还是二维
其数组名
都代表数组首元素
的地址
- 因为内存中数据是连续存储的原因,即内存中,没有所谓的二维数组,只是为了我们编程的方便,抽像出来的。因此二维数组的实质是一维数组,但是其
元素类型
是一维数组- 对数组地址解引用后得到是·
数组名
---数组首元素地址
例题经典再现
希望本文对你有所帮助!