目录
一、sizeof和strlen的对比
1.1 sizeof
sizeof 计算变量所占内存内存空间大小的,sizeof不是函数,单位是字节,如果操作数是类型的话,计算的是使用类型创建的变量所占内存空间的大小。
sizeof 只关注占用内存空间的大小,不在乎内存中存放什么数据。
1.2 strlen
strlen是C语言库函数,功能是求字符串长度。函数原型如下:
size_t strlen ( const char * str );
统计的是从strlen函数str中这个地址开始向后,\0之前字符串中字符的个数。strlen函数会一直向后找\0字符,直到找到为止,所以可能存在越界查找。
1.3 sizeof和strlen的对比
sizeof:
1.sizeof是操作符。
2.sizeof计算操作数所占内存的大小,单位是字节。(sizeof括号中有表达式的话,表达式不参与计算)
3.不关注内存中存放什么数据。
strlen:
1.strlen是库函数,使用需要包含头文件string.h
2.strlen是求字符串长度的,统计的是\0之前字符的个数。
3.关注内存中是否有\0,如果没有\0,就会持续往后找,可 能会越界。
二、数组和指针笔试题解析
2.1 一维数组
2.2 字符数组
代码1:
代码2:
代码3:
2.3 二维数组
2.4数组名的意义:
1. sizeof(数组名),这里的数组名示整个数组,计算的是整个数组的大小。
2.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。
3. 除此之外所有的数组名都表示首元素的地址。