数组

作者: 潘雪雯 | 来源:发表于2020-05-19 11:27 被阅读0次
  • 概念
  1. 元素类型角度:数组是相同类型的变量的有序集合
  2. 内存角度:联系的一大片内存空间


    image.png
  • 数组初始化
int a[10] = {1,2}; //其他初始化为0  指定长度
int b[] = {1, 2}; //不指定长度

注意点

  1. 数组名代表数组首元素的地址,是一个常量。(变量的本质是内存空间的别名,一定以数组,就分配好内存,所以数组名起名后不能修改)
  2. 数组首元素的地址和数组的地址值相等


    image.png
  • 数组类型
    数组的类型由元素类型和数组大小共同决定
  • 数组指针类型
  1. 通过数组类型定义数组指针
typedef int(ArrayType)[5];  //声明一个数组类型
ArrayType* pointer; //数组类型加* 定义一个数组指针变量

  1. 声明一个数组指针类型
typedef int (*MyPointer)[5]; //声明一个数组指针类型
MyPointer mypoint ;//用数组指针类型定义一个变量
  1. 直接定义:
    int:指向数组的类型
    pointer:数组指针变量名
    n:指向数组的大小
int (*pointer)[n]; //直接声明一个数组指针变量
  1. 一维数组做函数参数,并改变其值
    面试题21:调整数组顺序使奇数位于偶数前面
  2. 一维数组的那么坑
int a[5]={1,2,3,4,5};
(&a+1): 2293300
(&a):2293280
a:2293280
a+1:2293284

小结:a和&a都是数组首地址,a+1是数组第二位的地址,(&a+1)是以数组的长度为单位往后移动
实战

#include<iostream>
#include<string.h>
using namespace std;

int main()
{
    int a[5]={1,2,3,4,5};
    //int *ptr_1 = (int *)(&a);
    //printf("%d\n",*ptr_1);
    int *ptr=(int *)(&a+1);
    printf("%d\n",*ptr);
    //printf("%d,%d,%d,%d\n",(&a+1),(&a),a,a+1); //刚好差20个字符 
    printf("%d,%d",*(a+1),*(ptr-1));  2 5
    return 0;
}
  • 多维数组
char a[i][j] = *(*(a+i)+j)
int b[10]://  

int b[10]
b代表数组首元素的地址
&b代表数组的地址
&b+1指针后移4*10个单位
char cbuf[30]; //&cbuf(二级指针) 代表整个数组的地址
char array[10][30]
(array+i)相当于整个第i行的数组地址 即&cbuf
(*(array+i))一维数组的首地址 cbuf
(*(array+i))+j 相当于第i行第j列的地址 &array[i][j]
*((*(array+i))+j)相当于第i行第j列的地址的值 array[i][j]

image.png
image.png

相关文章

  • 数组

    数组数组数组数组数组数组数组数组数组

  • JavaScript - 5.数组<增删改查>

    数组 Array 数组 - 增 数组 - 删 / 改 数组 - 查 数组 - 自动 toString() 数组 -...

  • PHP数组使用

    数组定义 数组增、删、改 数组查询 数组排序 数组合并、分割 数组比较、去重复 数组长度 数组遍历 数组转换 其他...

  • 》》》PHP初入---(三)

    数组定义 1.索引数组:数组下标是整型的 声明数组: 访问数组: count(数组)--获取数组长度 查看数组所有...

  • JavaScript中数组的常用操作

    数组的遍历 数组的映射 数组的简化 数组的连接 获取数组的片段 数组的拷贝 查找数组 数组去重

  • JavaSE之数组

    六、数组 目录:数组概述、数组声明创建、数组使用、多维数组、Array类、稀疏数组 1.什么是数组 数组的定义:数...

  • Shell数组、关联数组

    数组 定义数组 获取数组 关联数组 定义关联数组 获取关联数组

  • 学习Java第五天

    数组是多个数据的集合 数组的语法 数组元素类型【】 数组名; 多维数组: 数组元素类型【】【】 数组名; 多维数组...

  • php基础精粹

    PHP php数组 php数组之索引数组初始化 PHP数组之索引数组赋值 PHP数组之访问索引数组内容 PHP数组...

  • C语言的惯用集

    数组部分 数组部分 清空数组a 把数据读进数组a 对数组a求和

网友评论

      本文标题:数组

      本文链接:https://www.haomeiwen.com/subject/sdbvohtx.html