C语言数组的创建和使用

  • 数组是一组相同类型元素的集合。

一维数组的创建及初始化

//创建int类型的数组
//直接创建:不对数组进行初始化
int arr1[10];
//最常用、好用的创建方式
int arr2[10] = { 0 }; //所有元素都被初始化为0
//完全初始化,创建时对每个元素都进行初始化
int arr3[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//不完全初始化,创建时只对其中几个元素进行初始化,其余元素默认被初始化为0
int arr4[10] = { 0, 1, 2, 3, 4 };
//对指定元素进行初始化
int arr5[10] = { [5] = 6 };
//不指定元素个数,数组的大小由创建时初始化元素个数决定
int arr6[] = { 0, 1, 2 };

一维数组的使用

对这六个数组的元素进行逐个打印:

//Print the array
void PrintArr(int sz ,int arr[])
{
int i = 0;
for (i = 0 ; i < sz ; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}

效果如下:

一维数组在内存中的存储形式

  • 数组名为数组首元素地址

    对刚才创建的六个数组的数组名进行打印

printf("%p\n",arr1);
printf("%p\n",arr2);
printf("%p\n",arr3);
printf("%p\n",arr4);
printf("%p\n",arr5);
printf("%p\n",arr6);

结果如下:

  • 数组在内存中是连续存放的。

对其中一个数组的元素的地址逐个打印:

int i =  0;
for (i = 0; i < 10 ;i++ )
{
printf("&arr1[%d] : %p\n", i, &arr1[i]);
}

结果如下:

二维数组的创建及初始化

//直接创建:不对数组进行初始化
int arr7[3][4];
//完全初始化,创建时对每个元素都进行初始化
int arr8[3][4] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
//不完全初始化,创建时只对其中几个元素进行初始化,其余元素默认被初始化为0
int arr9[3][4] = { 0, 1, 2, 3, 4, 5, 6 };
//所有元素都被初始化为0
int arr10[3][4] = { 0 }; int arr11[3][4] = { {0 , 1 } , { 3 , 4} } ;

二维数组的使用

对这五个二维数组的元素进行逐个打印:

int i, j;
printf("arr7:\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
printf("%d ",arr7[i][j]);
}
printf("\n");
}
...

结果如下:

二维数组在内存中的存储形式

  • 二维数组在内存中的存储形式逻辑上是这样的:

  • 实际上和一维数组一样,是连续的

int i = 0;
for(i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 4; j++)
{
printf("&arr8[%d][%d] : %p\n", i, j, &arr8[i][j]);
}
}

结果如下:

C语言数组的创建和使用的更多相关文章

  1. Numpy 学习之路(1)——数组的创建

    数组是Numpy操作的主要对象,也是python数据分析的主要对象,本系列文章是本人在学习Numpy中的笔记. 文章中以下都基于以下方式的numpy导入: import numpy as np fro ...

  2. GO语言数组和切片实例详解

    本文实例讲述了GO语言数组和切片的用法.分享给大家供大家参考.具体分析如下: 一.数组 与其他大多数语言类似,Go语言的数组也是一个元素类型相同的定长的序列. (1)数组的创建. 数组有3种创建方式: ...

  3. Go语言数组的使用

    Go 语言数组 Go 语言提供了数组类型的数据结构. 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. 相对于去声明number0 ...

  4. Go语言数组和切片的原理

    目录 数组 创建 访问和赋值 切片 结构 初始化 访问 追加 拷贝 总结 数组和切片是 Go 语言中常见的数据结构,很多刚刚使用 Go 的开发者往往会混淆这两个概念,数组作为最常见的集合在编程语言中是 ...

  5. Go语言数组

    目录 声明数组 数组在内存的结构 初始化数组 使用数组 函数间传递数组 数组使用注意事项 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类 ...

  6. go语言数组与切片比较

    一.数组 与其他大多数语言类似,Go语言的数组也是一个元素类型相同的定长的序列. (1)数组的创建. 数组有3种创建方式:[length]Type .[N]Type{value1, value2, . ...

  7. javascript数组操作(创建、元素删除、数组的拷贝)

    这篇文章主要介绍了javascript数组操作,包括创建.元素的访问.元素删除.数组的拷贝等操作,还有其它示例,需要的朋友可以参考下 1.数组的创建 复制代码 代码如下: var arrayObj = ...

  8. C语言数组和函数实例练习(一)

    C语言的数组和函数部分的知识,在语法上和Java语法是有所相似的,这里只通过实例总结一些自己感觉需要理解的部分知识. 1.数组 数组中的元素具有相同的数据类型:数组一旦创建,不能被改变:数组中元素在内 ...

  9. Java中数组的创建

    Java中数组的使用 1.普通数组变量的定义: //数组 //1.数组是Java中很重要的一部分,今天对数组进行了大致的了解,Java中的数组和C中数组还是有一定的区别的 //以下是总结的几种方法 p ...

随机推荐

  1. C#多线程---Semaphore实现线程同步

    一.简介 Semaphore类限制可同时访问某一资源或资源池的线程数.线程通过调用 WaitOne方法将信号量减1,并通过调用 Release方法把信号量加1. 构造函数:public Semapho ...

  2. CrackMe-CFF Crackme #3

    转载自:OllyDbg入门教程 我们先来运行一下这个 crackme(用 PEiD 检测显示是 Delphi 编的),界面如图: 这个 crackme 已经把用户名和注册码都输好了,省得我们动手^_^ ...

  3. Linux中增加组和用户

    新服务器增加用户: 1.创建一个新的组, groupadd oracle 2.useradd 命令用于建立用户账号(-g 指定用户所属的群组) useradd -g oracle oracle 3.再 ...

  4. Linux CentOS7 安装配置 IPtables

    2021-08-11 1. 前言 防火墙其实就是实现 Linux 下访问控制功能的,分为硬件和软件的防火墙两种类型.无论在何网络中,防火墙工作的地方一定是网络的边缘.防火墙的策略.规则就是去定义防火墙 ...

  5. uniapp H5 打包并部署到 nginx

    个人也是了百度了挺久的了,花费的时间( 俩个半小时 ) uniapp 的打包首先要先配置,配置好了才能去进行打包,如图所示. 这只是第一步. 注意: 1.运行基础路径最好用 ./ ,如果配置了其他请自 ...

  6. K8S日常运维中关于“ImagePullBackOff”报错的处理思路分析

    故障案例: 发现故障:kubectl get pod -n kube-system -owide|grep -v "Running"NAME READY STATUS RESTAR ...

  7. [考试总结]noip模拟47

    感觉自己放弃题目还是过于容易. 其实第一题不是很难,但是自己拿了一个暴力就走人了.. 然后其实简单优化一下子就有不少分数. 然后第二题的本质不同的子序列个数的方程没有推出来,如果推出来就会直接有 \( ...

  8. 细谈布隆过滤器及Redis实现

    ​ 何为布隆过滤器? 本质上是一种数据结构,是1970年由布隆提出的.它实际上是一个很长的二进制向量(位图)和一系列随机映射函数(哈希函数).可以用于检索一个元素是否在一个集合中. 数据结构: 布隆过 ...

  9. 转:C# PDFbox读取PDF内容

    using System; using System.Windows.Forms; using org.apache.pdfbox.pdmodel; using org.apache.pdfbox.u ...

  10. tk.mybatis中常用方法的使用(最实用)

    一.前言 不知道环境和maven依赖怎么配置的,先看一下这个: SpringBoot整合tk.mybatis 二.方法的介绍和使用 插入方法 int insertSelective(T var1); ...