C语言零基础入门(2)

 更新时间:2022年03月11日 16:44:02   作者:RayRings  
这篇文章主要为大家详细介绍了C语言零基础入门的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

1. 数组

数组是一组相同类型变量的有序集合,用于存放一组相同类型的数据。这一组变量用数组名和从0开始的下标标识,使用内存中一块连续的存储空间。依据数组中元素下标的个数分为一维数组、二维数组和多维数组。

1.1 一维数组

1.1.1 一维数组的定义

一维数组定义的一般形式为:

类型说明符      数组名[常量或常量表达式];

数组一经定义,其长度就不可改变,或者说,数组中元素的个数是固定的。程序编译或运行时,将为数组分配一块固定大小的连续的存储空间。例如:

int   array[10];

定义一维数组array,数据元素的类型为int,数组中有10个元素。这十个元素下标从0~9。

1.1.2 一维数组的初始化

(1)为数组的全部元素赋初值。如:

 int  a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

(2)对数组全部元素初始化。数组长度缺省,初值个数就是数组长度。如:

int  a[ ] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

(3)为数组部分元素赋初值。如:

int  a[10] = {1, 2, 3, 4, 5};

只对数组前5个元素赋初值,a[0]的初值为1,……,a[4]的初值为5,其余元素的初值为0。

如果没有对数组初始化,则数组元素的初值是一个不确定的值。

1.1.3 一维数组的引用

【例】将数组中的元素逆序存放后输出(不得另外开辟数组存储空间)。

#include<stdio.h>
#define N 10
void main()
{
    int i, t, a[N];
    for(i = 0; i < N; i++)
    {
        scanf("%d", &a[i]);        //为数组元素赋值
    }
    printf("交换前的数组元素\n");
    for(i = 0; i < N; i++)        //输出交换前数组元素
    {        
        printf("%6d", a[i]);
    }
    for(i = 0; i < N/2; i++)      //交换
    {
        t = a[i];
        a[i] = a[N - i - 1];
        a[N - i - 1] = t;
    }
    printf("\n交换后代的数组元素\n");
    for(i = 0; i < N; i++)        //输出交换后数组元素
    {        
        printf("%6d", a[i]);
    }
    printf("\n");
}

运行及结果如下图所示:

1.2 二维数组及多维数组

1.2.1 二维数组的定义

二维数组定义的一般形式为:

类型说明符    数组名 [常量表达式1]  [常量表达式2];

两个方括号中的常量表达式1和2分别规定了数组第一维的长度和第二维的长度,也称为行数和列数。两个常量表达式的乘积是数组元素的个数。

事实上,二维数组是由一维数组扩展而来的。若一维数组的元素本身还是一个一维数组,则构成二维数组。以此类推,可构成三维数组,乃至多维数组。

1.2.2 二维数组的初始化

(1)按行为二维数组元素赋初值。如:

int  a [3] [5] = {{0, 1, 2, 3, 4}, {1, 2, 3, 4, 5}, {2, 3, 4, 5, 6}};

(2)使用一维数据对二维数组元素赋初值。如:

int  a [4] [5] = {0, 1, 2, 3, 4, 1, 2, 3, 4, 5, 2, 3, 4, 5, 6};

(3)按行为二维数组部分元素赋初值。如:

int  a [4] [5] = {{1, 3}, {2}, {0}, {0, 2, 4}};

(4)当对全部元素初始化或按行初始化时,第一维的长度可以缺省,但第二维的长度必须注明。如:

int  a [] [4] = {1, 2, 3, 4, 5, 6, 7, 8}

int  b [] [4] = {{1, 2, 3}, {1, 2, 3}}

1.2.3 二维数组的引用

【例】对5*5的矩阵编程。

(1)求出主对角线元素的和;

(2)求出矩阵下三角元素的和;

(3)找出主对角线上最大值元素和它的位置。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容! 

相关文章

  • 详解c++中signal信号携带数据的接收与发送

    详解c++中signal信号携带数据的接收与发送

    这篇文章主要为大家详细介绍了c++中signal信号携带数据的接收与发送的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • c++实现超简单的贪吃蛇游戏实例介绍

    c++实现超简单的贪吃蛇游戏实例介绍

    大家好,本篇文章主要讲的是c++实现超简单的贪吃蛇游戏实例介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • C语言进阶数据的存储机制完整版

    C语言进阶数据的存储机制完整版

    这篇文章主要为大家完整的介绍了C语言进阶数据的存储机制,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-02-02
  • 基于C语言实现见缝插针游戏的示例代码

    基于C语言实现见缝插针游戏的示例代码

    见缝插针游戏就是使用鼠标左键点击发射针,当两个针的夹角小于一定限制时,游戏结束。本文将用C语言实现这一有趣游戏,感兴趣的可以了解一下
    2022-11-11
  • 利用c++编写简易版2048小游戏

    利用c++编写简易版2048小游戏

    这篇文章主要介绍了如何让利用c++编写简易版的2048小游戏,感兴趣的小伙伴请参考下面文章的具体内容
    2021-09-09
  • 输入一个字符串,取出其中的整数(实现代码)

    输入一个字符串,取出其中的整数(实现代码)

    输入一个字符串,内含所有数字和非数字字符。将其中连续的数字作为一个整数,依次存放到一个数组中,统计共有多少个整数,并输出这些数
    2013-09-09
  • 关于C++对象继承中的内存布局示例详解

    关于C++对象继承中的内存布局示例详解

    这篇文章主要给大家介绍了关于C++对象继承中内存布局的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • C语言实现顺序表的基本操作的示例详解

    C语言实现顺序表的基本操作的示例详解

    顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。本文将通过示例为大家讲解一下顺序表的基本操作,需要的可以参考一下
    2022-11-11
  • C语言完数的实现示例

    C语言完数的实现示例

    C语言中的完数指的是一个正整数,本文主要介绍了C语言完数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • c++中priority_queue模拟的实现

    c++中priority_queue模拟的实现

    priority_queue是C++标准库中的一个容器适配器,用于实现优先队列的数据结构,本文主要介绍了c++中priority_queue模拟的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-09-09

最新评论