对于数组必须要注意以下几点: 

1)sizeof() 求操作数的类型长度(以字节为单位) --> 操作符

2)strlen() 求字符串的长度,遇到'\0'结束(也就是说计算长度时,它会一直去寻找'\0'),但'\0'不纳入计算 --> 函数

3)对于一个数组a来说,只有&a和sizeof(a)中,a代表整个数组,其他情况下,a都代表该数组中首元素的地址

4)以下例题可以深刻理解一个数组名的含义

一维整型数组的运算

整型数组

数组运算:sizeof(),strlen()测试题数组运算:sizeof(),strlen()测试题数组运算:sizeof(),strlen()测试题数组运算:sizeof(),strlen()测试题数组运算:sizeof(),strlen()测试题数组运算:sizeof(),strlen()测试题

注意:地址都是4个字节长度

一维字符型数组的运算

字符数组(无'\0')

数组运算:sizeof(),strlen()测试题

数组运算:sizeof(),strlen()测试题

注意:strlen(char * string),函数的参数类型是一个字符型指针,当类型不匹配时便会报错


字符串数组(含'\0')

a.用数组存放字符串

数组运算:sizeof(),strlen()测试题

数组运算:sizeof(),strlen()测试题

注意:此时定义的数组 arr1 开辟的空间位于栈区,该空间用于存放字符串“abcdef" --> 可以修改字符串


b.用指针指向字符串

数组运算:sizeof(),strlen()测试题

数组运算:sizeof(),strlen()测试题

注意:此时定义的指针 p 开辟的空间位于栈区,该空间用于存放地址,该地址指向字符串"abcdef"(字符串作为常量存放在静态区,也就是只读区)--> 这个字符串常量不可以修改

二维整型数组的运算

二维整型数组

数组运算:sizeof(),strlen()测试题

注意:二维数组存储时也是线性连续的,可以将其理解成一个一维数组,不过该一维数组里存放的元素还是数组。也就是说,二维数组是一个存放着一维数组的一维数组。。。

相关文章:

  • 2022-01-03
  • 2021-04-09
  • 2021-06-15
  • 2021-08-30
  • 2021-10-18
  • 2021-06-20
  • 2021-04-25
猜你喜欢
  • 2021-07-17
  • 2021-09-01
  • 2021-08-05
  • 2018-05-27
  • 2021-07-20
  • 2021-09-02
  • 2021-08-01
相关资源
相似解决方案