C语言学习笔记(五) 数组

数组

  数组的出现就是为了解决大量同类型数据的存储和使用的问题;

  数组的分类:一维数组、二维数组。

  一维数组:为多个变量连续分配存储控件;所有的变量的数据类型必须相同;所有变量所占的字节大小必须相等;

    例如:int a[4];  一维数组名不代表数组中的所有元素而是代表数组中第一个元素的地址;

    数组的初始化:

      完全初始化: int a[4] = {1,2,3,4};

      不完全初始化: int a[4] = {1};  未被初始化的元素的值默认为0; 数组清零 int a[4] = {0};

      不初始化: int a[4];  数组中的值都是垃圾值;

    数组初始化事例: int a[4];  a[4] = {1,2,3,4}; //错误  因为数组只有四个元素,而a[4]表示第五个元素。所以数组只有在定义

            的时候才可以整体赋值;

            int a[4] = {1,2,3,4}; int b[4]; b = a; //错误  不能把a数组赋值给b数组

            for(i = 0; i < 4; i++)

            {

              b[i] = a[i];

            }

  二维数组:int [2][3]  可以看成是两行三列 总共六个元素; int[i][j]  表示第 i+1 行,j+1 列;

      初始化:int [2][3] = {1,2,3,4,5,6};

  多维数组:由于内存是线性一维的,所以并不存在多维数组。N维数组可以当作每个元素是N-1维的一维数组;

C语言学习笔记(五) 数组

时间: 2024-11-03 03:27:30

C语言学习笔记(五) 数组的相关文章

【GO】GO语言学习笔记五

函数 1.函数的基本组成 关键字func,函数名,参数列表,返回值,函数体,返回语句. 2.函数的定义 举个栗子 package mymath import "errors" func Add(a int, b int) (ret int, err error) { if a < 0 || b < 0 { // 假设这个函数只支持两个非负数字的加法 err= errors.New("Should be non-negative numbers!") re

C语言学习笔记 (004) - 数组名和数组首地址(转)

一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址.指针变量既然可以指向变量,当然也可以指向数组和数组元素(把数据起始地址或某一元素的地址放到一个指针变量中).所谓数组的指针是指数组的起始地址,数组元素的指针数组元素的地址. 这种指针变量的定义与以前介绍的指向变量的指针变量相同.应当注意,如果数组为int型,则指针变量亦应指向int型. C语言规定数组名代表数组的首地址,也就是第一个元素的地址.因此,下面两个语句等价: p=&a[0]: p=a: 注意数

C语言学习笔记-6.数组

一.一维数组的定义和使用 1.C语言中,数组元素的下标是从0开始 2.定义数组时,需要设定它的长度,该长度必须是一个整型常量 注:常量采用宏定义优势:用简短标识符代替长数据 有利于程序修改和升级 用易于理解的标识符代替不好记的数据 格式:#define PI 3.14 (没有分号) 3.如果对全部的数组元素赋予初值,则可以不指定数组的长度 在初始化时,如果初值的个数少于元素个数,则剩余的自动补0 二.字符数组与字符串 1.字符串通常都保存在字符数组中,每个元素存放一个字符,以'\0'结尾 2.字

go语言学习笔记(1)—数组与切片

数据(array)与切片(slice) 数组声明: ArrayType???= "[" ArrayLength "]" ElementType . 例如: var a [32] int var b [3][5] int ? 在Go和C中,数组的工作方式有几个重要的差别.在Go中, (1)数组是值类型.将一个数组赋值给另一个,会拷贝所有的元素. (2)?如果你给函数传递一个数组,其将收到一个数组的拷贝,而不是它的指针. (3)数组的大小是其类型的一部分,类型[10]i

JAVA学习笔记(五)- 数组

数组创建 数组 /* * 数组 */ public class Test { public static void main(String[] args) { int age;//声明 age = 20;//赋值 // int[] arrs;//声明了一个数组.array // int arrs2[]; // float[] fs = new float[5];默认元素的值为0.0 // char[] cs = new char[5];'\u0000' // String[] strs = ne

C语言学习笔记(五) 预处理符号

关于预处理的"常识" 预处理并不是编译,也不是"预编译". 预处理并不是每个语言都有的. C/C++预处理仅仅是把源程序划分和整理成一个个的段(phase),并不进行编译. 预处理器在UNIX传统中通常缩写为PP,在自动构建脚本中C预处理器被缩写为CPP的宏指代.为了不造成歧义,C++(c-plus-plus) 经常并不是缩写为CPP,而改成CXX. C语言预处理符号 ANSI C标准要求支持的预处理符号包括: #define.#undef(宏定义), #inclu

R语言学习笔记

參考:W.N. Venables, D.M. Smith and the R DCT: Introduction to R -- Notes on R: A Programming Environment for Data Analysis and Graphics,2003. http://bayes.math.montana.edu/Rweb/Rnotes/R.html 前言:关于R 在R的官方教程里是这么给R下注解的:一个数据分析和图形显示的程序设计环境(A system for data

小猪的数据结构学习笔记(五)

小猪的数据结构学习笔记(五) 线性表之--循环链表                           --转载请注明出处:coder-pig 循环链表知识点归纳: 相关代码实现: ①判断是否为空表: ②单循环链表的存储结构 其实和单链表的结构是一样的! /*定义循环链表的存储结构*/ typedef struct Cir_List { int data; struct Cir_List *next; }Lnode; ③初始化循环单链表 代码如下: //1.循环链表的初始化 //表示一个元素,如

Swift学习笔记五:循环和条件语句

一.循环语句 1. for循环 1) for -in 循环,对于数据范围,序列,集合等中的每一个元素,都执行一次 for a in 0...5{}    //循环迭代,从a=0到a=5,执行{}里的代码 注意:a只循环中存在,也就是出了{}a就不存在了 或者遍历数组 let a = [1,2,3] for b in a{} //循环迭代,从b=1到b=3 如果你不需要序列中的每一个值,可以使用_来忽略它,仅仅只是使用循环体本身: for _ in 0...5{}    //循环执行{}里的代码,