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. mysql开启远程访问权限的设置

    MySql-Server 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问. 所以必须给root修改可以远程访问的权限 1.在连接服务器后,操作mysql系统数据库 ...

  2. Git分支创建命令

    一. 创建test分支提交步骤 1.列出所有分支 # git branch -a 2.创建test分支          # git branch test 3.切换到test分支:         ...

  3. 关于 go-fastdfs-web 的SpringBoot 后台管理

    1.问题的产生: 1.公司需要存储图片数据,采用Go语言的fastdfs,实现存储,我的职责就是部署,SpringBoot版本的管理平台. 2.当我看见代码之后我的内心是拒绝的,没有注释....... ...

  4. JavaWeb学习总结—Session

    转载自:https://www.cnblogs.com/xdp-gacl/p/3855702.html 一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(sess ...

  5. 刷题-力扣-518. 零钱兑换 II

    518. 零钱兑换 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/coin-change-2/ 著作权归领扣网络所有.商业转载 ...

  6. 解锁 VS Code 更多可能性,轻松入门 WebView

    作者:HelloGitHub-小夏 说起 VS Code 大家普遍印象应该都差不多是这样:不就是个编辑器嘛,最主要的还是 coding 的快感咯. 里面很多功能都应该是围绕如何提高 coding 效率 ...

  7. 【Python机器学习实战】决策树与集成学习(四)——集成学习(2)GBDT

    本打算将GBDT和XGBoost放在一起,但由于涉及内容较多,且两个都是比较重要的算法,这里主要先看GBDT算法,XGBoost是GBDT算法的优化和变种,等熟悉GBDT后再去理解XGBoost就会容 ...

  8. Linux下cat命令的使用

    1.普通用法-->查看文件内容 cat file_name 查看文件时的相关参数: 1.cat f1.txt,查看f1.txt文件的内容. 2.cat -n f1.txt,查看f1.txt文件的 ...

  9. Python - 面向对象编程 - 三大特性之多态

    前置知识 封装 详解文章:https://www.cnblogs.com/poloyy/p/15203989.html 封装根据职责将属性.方法封装到一个抽象的类中 定义类的准则-封装 继承 详解文章 ...

  10. 基本ServletWEB项目

    项目搭建 项目链接https://gitee.com/zhangjzm/smbms.git 前置知识,Servlet JSP 结构图 搭建maven web项目 1.搭建一个maven web项目 2 ...