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

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

    1、数组要素:

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

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

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

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

    2、数组特征:

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

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

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

  #include <stdio.h>

  int main(int argc, char **argv)
{
int arrInt[] = {, , , , ,};
int size = sizeof(arrInt) / sizeof(int);
for(int i = ; i < size; i++){
printf("arrInt[%d]: %d\t", i, arrInt[i]);
} return ;
}

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

  #include <stdio.h>

  int main(int argc, char **argv)
{
int arrInt[] = {, , , , ,};
int size = sizeof(arrInt) / sizeof(int);
for(int i = ; i <= size - ; i++){
printf("arrInt[%d]: %d\t", i, arrInt[i]);
} return ;
}

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

  #include <stdio.h>

  int main(int argc, char **argv)
{
int arrInt[] = {, , , , ,};
int size = sizeof(arrInt) / sizeof(int); printf("The arrInt address: %p and arrInt[0] address: %p\n", &arrInt, &arrInt[]); for(int i = ; i <= size - ; i++){
printf("arrInt[%d]: %d and address: %p\n", i, arrInt[i], &arrInt[i]);
} return ;
}

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

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

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

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

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

    

23深入理解C指针之---数组的基础的更多相关文章

  1. 35深入理解C指针之---结构体基础

    一.结构体基础 1.定义:结构体大大加强了C的数据聚合能力,可以使得不同类型的数据进行结合 2.特征: 1).结构体可以使得不同类型的数据进行结合 2).结构体可以使用内置的数据类型,包括指针 3). ...

  2. 深入理解C语言中的指针与数组之指针篇

    转载于http://blog.csdn.net/hinyunsin/article/details/6662851     前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本 ...

  3. 深入理解C语言中的指针与数组之指针篇(转载)

    前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本所在.相信,任意一家公司如果想要考察一个人对C语言的理解,指针和数组绝对是必考的一部分. 但是之前一方面之前一直在忙各种事情 ...

  4. 深入理解C指针之四:指针和数组

    原文:深入理解C指针之四:指针和数组 数组是C内建的基本数据结构,数组表示法和指针表示法紧密关联.一种常见的错误认识是数组和指针完全可以互换,尽管数组名字有时可以当做指针来用,但数组的名字不是指针.数 ...

  5. 24深入理解C指针之---指针和数组

    一.指针和数组 #include <stdio.h> int main(int argc, char **argv) { ] = {, , , , ,}; int *ptrVector = ...

  6. 浅谈C中的指针和数组(五)

    前面写了一些C指针和数组的一些知识,但是还有一些很重要的知识没有交代,这里做一个补充. 首先看一下,普通变量(指针也是变量)和数组名查看地址的方式是不同的. 查看数组变量的地址,不需要使用 & ...

  7. 《深入理解C指针》

    <深入理解C指针> 基本信息 原书名:Understanding and using C pointers 作者: (美)Richard Reese 译者: 陈晓亮 丛书名: 图灵程序设计 ...

  8. 33深入理解C指针之---通过字符串传递数据

    一.传递字符串:在函数的参数列表中,将参数声明为char指针即可实现通过字符串传递参数 1.特征: 1).字符串以char指针的形式传递,一般是const指针传递: 2).使用字符数组声明字符串,调用 ...

  9. 10深入理解C指针之---指针运算和比较

    该系列文章源于<深入理解C指针>的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教. 指针运算有很多种,主要有指针的声明*.指针的解引*.指针指向(*).或->.指针 ...

随机推荐

  1. Yii2 HelloWord

    一.安装Yii2 可以直接官网或github下载: https://github.com/yiisoft/yii2 下载完后进入项目的web/目录,入口文件为该目录下的index.php,这里直接启用 ...

  2. Python基础——数值

    运算 运算 运算符 示例 加 + 减 - 乘 * 除 / 取余 % 幂 ** 赋值 = 绝对值 abs 取整(四舍五入) round 最大值 max 最小值 min 科学计数法 e 十六进制 0x 逻 ...

  3. drf 视图功能

    视图 drf提供的视图功能 自己的第一次封装 #一个功能写成一个类,方便组合,只要继承它就可以有这个功能 #将功能都写在一个类中,可控性就会变差 from book.myserializers imp ...

  4. leetcode-21-knapsack

    322. Coin Change Write a function to compute the fewest number of coins that you need to make up tha ...

  5. leetcode-10-basic

    35. Search Insert Position Given a sorted array and a target value, return the index if the target i ...

  6. JAVA基础篇—抽象类,抽象方法

    class Shape package com.shape; public abstract class Shape { double area;// double per;// String col ...

  7. Linux磁盘简介

    为一台服务器添加三块磁盘的体系结构情况 Linux系统中用free  -l 查看磁盘的状况 说明:   1)buffers为写入缓冲区,sync将缓冲区数据写入磁盘,cache为读出缓存. 2)cac ...

  8. Hadoop4.2HDFS测试报告之六

    测试结论 第一组数据作表格作图: 第二组数据作表格作图: 根据以上图分析得出以下结论: 1. 本地存储的读写速率基本保持23M左右,说明本地存储比较稳定. 2. HDFS存储两个数据节点的读写速率性能 ...

  9. webdriver高级应用- 精确比较页面截图图片

    判断两张图是否完全一致,如果存在任何不一致,会认为图片不匹配,代码如下: #encoding=utf-8 from selenium import webdriver import unittest, ...

  10. python练手系列-分布式监控

    如果我们要写一个监控系统,要注意哪些问题和需求? [1] agent收集数据的时候需要通过系统调用少的方法收集到我们需要数据,一般来说我们优先使用python自带的系统方法,然后是读取/proc 文件 ...