zoukankan      html  css  js  c++  java
  • 23深入理解C指针之---数组的基础

      数组是c语言内置的数据结构,数组有一维数组、二维数组和多维数组。使用数组传递数组时,必须传入数组的大小。

      一、数组的特征:阐明数组的特点

        1、数组要素:

          1)、数组类型:数组中存储的数据的类型;

          2)、数组名称:数组名称只要符号表达式命名规则即可;

          3)、数组大小:数组中数据的个数,数值写到[]中即可,若数组直接初始化也可以不写大小;

          4)、数组标识:[],表达式后接上[]表明前面的表达式是数组的名称;

        2、数组特征:

          1)、数组的大小是固定的;

          2)、数组名可以表示数组中第一个元素的地址;

          3)、数组名也暗中包含了数组大大小,常常通过sizeof(arrName)/sizeof(arrType)获取数组中元素的个数;

     1 #include <stdio.h>
     2
     3 int main(int argc, char **argv)
     4 {
     5     int arrInt[] = {1, 2, 3, 4, 5,};
     6     int size = sizeof(arrInt) / sizeof(int);
     7     for(int i = 0; i < size; i++){
     8         printf("arrInt[%d]: %d	", i, arrInt[i]);
     9     }
    10
    11     return 0;
    12 }


          4)、可以通过数组索引随机访问数据元素,数组的索引从0开始,到size-1;

     1 #include <stdio.h>
     2
     3 int main(int argc, char **argv)
     4 {
     5     int arrInt[] = {1, 2, 3, 4, 5,};
     6     int size = sizeof(arrInt) / sizeof(int);
     7     for(int i = 0; i <= size - 1; i++){
     8         printf("arrInt[%d]: %d	", i, arrInt[i]);
     9     }
    10
    11     return 0;
    12 }


          5)、可以用数组名表示数组的地址;

     1 #include <stdio.h>
     2
     3 int main(int argc, char **argv)
     4 {
     5     int arrInt[] = {1, 2, 3, 4, 5,};
     6     int size = sizeof(arrInt) / sizeof(int);
     7
     8     printf("The arrInt address: %p and arrInt[0] address: %p
    ", &arrInt, &arrInt[0]);
     9
    10     for(int i = 0; i <= size - 1; i++){
    11         printf("arrInt[%d]: %d and address: %p
    ", i, arrInt[i], &arrInt[i]);
    12     }
    13
    14     return 0;
    15 }


          6)、数组可以有多维的,可以通过[]的个数确定数组的维数,第一维数字可以省略,其他的不能;

          7)、一维数组可以表示一个向量;

          8)、二维数组可以表示矩阵,通过行列来表示数据;

          9)、数组中的元素会存储到连续的内存单元中,可以通过索引(下标)实现随机访问;

         
          10)、二维数组中可以存在每行元素不同的不规则数组;

        

  • 相关阅读:
    Java线程之Callable和Future
    Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
    hdu 6201 transaction transaction transaction
    三分钟读懂TT猫分布式、微服务和集群之路
    springcloud(十):服务网关zuul初级篇
    springcloud(九):配置中心和消息总线(配置中心终结版)
    springcloud(八):配置中心服务化和高可用
    springcloud(七):配置中心svn示例和refresh
    springcloud(六):配置中心git示例
    最简单的SpringBoot整合MyBatis教程
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/6960840.html
Copyright © 2011-2022 走看看