0.  数组的两种表现形式
        一种是常见的a[10];          //初学者常用
        另一种是用指针表示的数组.   //实际工程使用.常用于参数传递
        因为数组也是指针啊.
   1.  一维数组的定义
        数组是一批相同数据的集合 .
        如果说 int a; 是在内存中开辟了一个int大小的空间,
        那么 int a[10] 就是表示在内存中开辟了10个 连续的 int大小的空间,总大小为 10 * sizeof(int).
        注意,数组开辟的空间是连续的 .
   2.  数组的组成 .地址 大小 和 空间   
        就如同普通变量 int a = 10; 一样,数组也有 3要素组成.
        auto int a[10];
        在内存中开辟了一个超大的空间,这个空间有一个名字叫做 a,a即是名称,也是这段空间的地址 叫首地址.
        这个超大空间分为10个小空间,每个小空间的大小是 int 大小.
        这个也是默认放在栈空间auto.
 
 3. 数组的初始化
        数组的初始化有两种情况:
            第一次初始化专用
            非第一次初始化
            第一次初始化: int a[3] = {2,3,4};   //这种大括号的初始化方式只能用于第一次初始化的情况下,往后赋值或者取值,只能用循环的方式来实现.
            非第一次:

   int i;
for(i= ; i<;i++){
a[i] = i;
}

  注意:数组的下标是从0开始的 .

3. 一维数组和指针.!!!!!
        
        定义一个指针,指向 int a[10] 的首地址
        int *p = a;
        或者
        int *p;
        p = a; //注意这里不是&a,因为a作为数组名, 本身就是地址 .
        在数组中,

     a[] = ;  //数组版
*p = ; //指针版 a[] = ;   //数组
*(p+) = ; //指针版
        首先,p = a,代表着首地址 ,比如是0xA0
        那么 p+1 是什么意义? p+1 表示,在首地址的基础上,往下偏移1个空间量 那p+1=0XA1吗?? 不是的,因为这个数组的一个空间量是int大小 ,所以它的地址 应该是 0XA0+(sizeof(int) * 偏移量) //0XA4
        然后再进行*运算代表取值.
        数组指针操作的基本思想就是,在首地址的基础上,进行指针偏移,然后进行取值和赋值操作
        
        //例子,数组指针的实际用途
        //对数组 int a[10]进行排序
        //思路: 写一个排序函数,然后把数组的指针作为参数传递进去
// 2. 首先,我们传进来的是一个数组指针,那么,数组a的指针怎么写呢// 数组a[10] 的指针是 int *p = a;
//所以设计函数的时候,形参部分就可以写,int *p, 即数组的形参.
int sort(int *p){ //形参
//...具体功能
} int main(){
  int a[] = {,,,,,,,,,}; //定义一个数组
// 1. 我们的思想就是把这个数组的地址传递过去就可以了,那么实现这个功能,要怎么设计sort函数呢?
sort(a); //实参
}

        这里先介绍一下4个函数:
        strcpy(s1,s2); //将s2复制给s1,一旦在s2中遇到'\0', 就停止函数.
        strcat(s1,s2); //将s2接在s1末尾.
        strlen(s1); //返回s1的长度
        strcmp(s1, s2); //比较两个字符串,如果s1 == s2 ,则返回0, s1< s2 返回值小于0, s1>s2 返回值>0 .

C语言数组篇(一)一维数组的更多相关文章

  1. 二维数组转化为一维数组 contact 与apply 的结合

    将多维数组(尤其是二维数组)转化为一维数组是业务开发中的常用逻辑,除了使用朴素的循环转换以外,我们还可以利用Javascript的语言特性实现更为简洁优雅的转换.本文将从朴素的循环转换开始,逐一介绍三 ...

  2. PHP开发小技巧③—实现多维数组转化为一维数组

    在平常的项目开发中我们多会用到让多维数组转化为一维数组的情况,但是很多Programmer不会将其进行转化,也有些没有想到很好的算法然后经过乱起八糟的运算方式将其勉强转化好,但是所写的程序代码冗余非常 ...

  3. [Swift]多维数组的表示和存储:N维数组映射到一维数组(一一对应)!

    数组:有序的元素序列. 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数字编号称为下标.数组 ...

  4. 【C语言】12-指向一维数组元素的指针

    一.用指针指向一维数组的元素 1 // 定义一个int类型的数组 2 int a[2]; 3 4 // 定义一个int类型的指针 5 int *p; 6 7 // 让指针指向数组的第0个元素 8 p ...

  5. 【C语言学习】-04 一维数组、字符数组

    一维数组.数组排序.字符数

  6. 第二篇 javascript一维数组和二维数组及方法

    一.数组 什么是数组 程序=数据+算法 数组就是一种很常见的保存批量数据的数据结构 一.定义数组 var arr1=[]; //定义了一个不包含元素的数组 ,,]; //定义了一个包含三个元素的数组 ...

  7. [C++]指针和指向数组的指针[一维数组与指针]

     1.一维数组与指针      形如:int型 数组 a[10]                1)&a[0]  地址常量;地址类型:int *型   ; 存储数组a的首地址          ...

  8. Python数组操作将一维数组变成二维数组

    一.问题 我们在进行数组操作的时候会遇到将一个低维的数组变成一个高维的素数组 二.解决 第一种方法基本思路就是将低维数组进行等长的循环,在第一次为零的情况下,需要添加一个[]数组,原因是将它的基本框架 ...

  9. 题目要求:传入数组 内容为[['lisi','男','27'],['wangwu','男',18],['zhaoliu','男','30']],将此二维数组转化为一维数组,创建自定义函数完成

    //自定义函数 function getOne($arr){ $str = ''; //定义空的字符串,用来接收值 foreach ($arr as $key=>$value){ //循环遍历数 ...

  10. 将二维数组转换成一维数组(基于reduce)

    reduce:不改变原数组,返回一个新的数组.就是遍历数组元素,从头开始,依次往下,第一个参数是上一次的返回值,第二个参数是下一个数组元素,首次的时候第一个和第二个参数分别是 array[0],  a ...

随机推荐

  1. js-对象的方法详解

    Object.prototype 上的方法: constructor 返回创建该对象的构造函数 var arr = []; arr.constructor == function Array() { ...

  2. REP-0118:can not create temporary file(无法创建临时文件)

    解决办法: 查看一下注册表里面的reports_tmp 的路径 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_DevSuiteHome1 .是不 ...

  3. Struts2_访问Web元素

    取得Map 类型的 request,session,application, HttpServletRequest,HttpSession,ServletContext的引用. 分访问 Map 类型和 ...

  4. sudoer解释

    /etc/sudoer ## Sudoers allows particular users to run various commands as ## the root user, without ...

  5. 05、Spark

    05.Spark shell连接到Spark集群执行作业 5.1 Spark shell连接到Spark集群介绍 Spark shell可以连接到Spark集群,spark shell本身也是spar ...

  6. MAC读取希捷移动硬盘ntfs

    希捷提供了mac读取ntfs磁盘的软件,Paragon. 搜索关键词 "希捷" "mac" 或者通过以下链接进入 https://www.seagate.com ...

  7. vs下如何调试Dll

    1.首先需要一个exe加载你的dll 2.dll项目的属性设置 3.将dll设为启动项 4.在dll中设置断点 F5就可以调试了

  8. 封装win7系统、制作win7GHO镜像、制作一个自定义的镜像文件具体步骤、制作Win10镜像gho

    作者:导演你让灰太狼吃只羊 来源:CSDN 原文:https://blog.csdn.net/qq_35057426/article/details/83015516 版权声明:本文为博主原创文章,转 ...

  9. 【2017-06-17】QtGui基础控件:QSpinBox及QDoubleSpinBox

    今天开始一个新的系列,主要是翻译并摘录QtGui中基础空间的常用方法,并做一些简单的实验程序: 我觉得这是一个炒冷饭的行为,但有时候冷饭不能不炒,不热不好吃,而且也很容易发霉. 其实到现在这种状态,对 ...

  10. Python-Django框架学习笔记——第二课:Django的搭建

    Django 环境搭建 一. 版本选择 Django 1.5.x 支持 Python 2.6.5 Python 2.7, Python 3.2 和 3.3. Django 1.6.x 支持 Pytho ...