文档章节

学点 C 语言(19): 数据类型 - 数组

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 671
阅读 6
收藏 0
点赞 0
评论 0

1. 数组的标志是 []:
#include <stdio.h>

int main(void)
{
    int nums[3];

    nums[0] = 11;
    nums[1] = 22;
    nums[2] = 33;

    printf("%d, %d, %d", nums[0], nums[1], nums[2]);
    
    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

2. 数组的大小和维数:
#include <stdio.h>

int main(void)
{
    int nums[10];

    printf("数组大小是: %d\n", sizeof(nums));
    printf("数组维数是: %d\n", sizeof(nums)/sizeof(nums[0]));
    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

3. 遍历数组:
#include <stdio.h>

int main(void)
{
    int nums[10];

    int i;
    for (i = 0; i < sizeof(nums)/sizeof(nums[0]); i++) 
        nums[i] = i * i;
        
    for (i = 0; i < sizeof(nums)/sizeof(nums[0]); i++) 
        printf("%d\n", nums[i]);

    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

对字符串数组, 我们也可以这样想...
#include <stdio.h>

int main(void)
{
    char cs[] = "ABCDEFG";
    int i;
    for (i = 0; cs[i]; i++) {   /* cs[i] 为假时, 就到了那个空字符了 */
        printf("%c\n", cs[i]);
    }
    
    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

4. 对一维数组, 可以不指定维数, 它能自动识别:
#include <stdio.h>

int main(void)
{
    double ds[] = {1.1, 2.2, 3.3, 4.4};
    
    int count = sizeof ds / sizeof ds[0];
    int i;
    
    for (i = 0; i < count; i++) {
        printf("%.1f\n", ds[i]);
    }
    
    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

4. 不指定维数的数组常常会用于字符串:
#include <stdio.h>

int main(void)
{
    char str1[] = "Builder";

    /* 假如不怕麻烦可以这样初始化 */
    char str2[8] = {'B','u','i','l','d','e','r','\0'};
    
    unsigned i;
    for (i = 0; i < sizeof str1/sizeof str1[0]; i++) {
        printf("%c", str1[i]);    
    }

    printf("\n%s", str1);
    printf("\n%s", str2);
    
    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

5. 二维数组:
#include <stdio.h>

int main(void)
{
    int nums[3][4] = {
                       {11,12,13,14},
                       {21,22,23,24},
                       {31,32,33,34}
                     };

    printf("%d,%d,%d\n", nums[0][2], nums[1][2], nums[2][2]);

    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

5. 可以并只能省略第一个维数:
#include <stdio.h>

int main(void)
{
    int nums[][4] = {
                       {11,12,13,14},
                       {21,22,23,24},
                       {31,32,33,34}
                     };

    printf("%d,%d,%d\n", nums[0][2], nums[1][2], nums[2][2]);

    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

6. 多维数组:
#include <stdio.h>

int main(void)
{
    int nums[2][3][4] = {
                          {
                            {111,112,113,114},
                            {121,122,123,124},
                            {131,132,133,134}
                          },
                          {
                            {211,212,213,214},
                            {221,222,223,224},
                            {231,232,233,234}
                          }
                        };

    printf("%d,%d,%d\n", nums[0][0][0], nums[1][1][1], nums[1][2][2]);
    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

7. 多维数组也是可以并只能省略第一个维数:
#include <stdio.h>

int main(void)
{
    int nums[][3][4] = {
                          {
                            {111,112,113,114},
                            {121,122,123,124},
                            {131,132,133,134}
                          },
                          {
                            {211,212,213,214},
                            {221,222,223,224},
                            {231,232,233,234}
                          }
                        };

    printf("%d,%d,%d\n", nums[0][0][0], nums[1][1][1], nums[1][2][2]);
    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

8. 字符串数组:
#include <stdio.h>

int main(void)
{
    char css[][10] = {
                       "AAA",
                       "BBB",
                       "CCCCCCC"
                     };
    size_t i;
    for (i = 0; i < sizeof(css)/sizeof(css[0]); i++) {
        printf("%s\n", css[i]);    
    }
    
    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

9. 没有初始化的局部数组变量, 包含的是一堆垃圾值:
#include <stdio.h>

int ns1[10];     /* 这个会初始化为空 */

int main(void)
{
    int ns2[10]; /* 这个不会初始化 */

    int i;
        
    for (i = 0; i < sizeof(ns1)/sizeof(ns1[0]); i++) 
        printf("%d\n", ns1[i]);

    printf("------------\n");
    
    for (i = 0; i < sizeof(ns2)/sizeof(ns2[0]); i++) 
        printf("%d\n", ns2[i]);

    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

10. 初始化数组为空其实很简单:
#include <stdio.h>

int main(void)
{
    int ns1[10] = {NULL}; /* 或 {0} */
    int ns2[2][3][4] = {0};

    int i;
    for (i = 0; i < sizeof(ns1)/sizeof(ns1[0]); i++) 
        printf("%d\n", ns1[i]);

    printf("---------\n");
    printf("%d\n", ns2[1][2][3]);

    getchar();
    return 0;
}

 
 
 
 
 

 

 

  

© 著作权归作者所有

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
C语言编程新手学习基础知识点大总结!小白入门必备

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界 ⋅ 05/13 ⋅ 0

菜鸟数据科学入门03 - NumPy 数组基础和基本操作

回顾: 菜鸟数据科学入门01 - 工具包概略 菜鸟数据科学入门02 - IPython 基础 为什么用 NumPy? NumPy 是一个用于科学计算的基础 Python 库(安装说明)。它可以让你在 Python 中使用向量和数...

Kidult ⋅ 2017/12/26 ⋅ 0

想做程序员,C语言可以开发哪些项目?

(1)C语言是面向过程的,而C++是面向对象的 (2)C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运...

小辰GG ⋅ 2017/12/21 ⋅ 0

学习大数据为什么最好有java语言基础?

  本文需要5分钟左右阅读完成,建议收藏以后阅读,里面都是干货,可以亲自试验一下,如果觉得好用可以帮忙点赞转发一下,谢谢!交流学习java大数据可以加群460570824。   计算机编程语言...

java分享 ⋅ 2017/12/18 ⋅ 0

C语言编程学习程序解析:C语言的指针和函数返回值解析

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界 ⋅ 05/27 ⋅ 0

【计算机本科补全计划】Java学习笔记(八) Java数组

正文之前 CCF考完了。抓紧把Java看完吧,昨晚狠下心来跟老师说要去实验室干活,鬼知道自在日子啥时候就没了。所以还是有点危机感,先把Java学好。另外这几天看图论觉得好有意思,等学完Java就...

HustWolf ⋅ 2017/12/04 ⋅ 0

C语言编程基础学习如何定义一维数组和二维数组

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界 ⋅ 04/01 ⋅ 0

关东升的《从零开始学Swift》第2版已经出版

关东升的《从零开始学Swift》第2版已经出版 大家好: 苹果2015WWDC大会发布了Swift2.0,它较之前的版本Swift1.x有很大的变化,所以我即将出版《从零开始学Swift》 《从零开始学Swift》将在《...

tony关东升 ⋅ 2016/02/24 ⋅ 0

C语言数组讲解(二)

谨记 一个人的潜力有多大、能力有多强,是一个未知数,因为我相信能力就是干出来的,以前读过一本书《能力就是干出来的》,这本书就讲述了化保力人生最艰难和辉煌的那段时间,一个农村家境非...

长风留言 ⋅ 2017/11/08 ⋅ 0

R语言的基本数据结构

1、向量 向量是用于存储数值型、字符型或逻辑性数据的一维数组,执行组合功能的函数c()可用来创建向量 下面创建向量a,并对其进行运算 > a<-c(2,3,4) > a [1] 2 3 4 > aa [1] 4 9 16 > a(-a) ...

mrmusic ⋅ 2016/03/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringCloud 微服务 (六) 服务通信 RestTemplate

壹 通信的方式主要有两种,Http 和 RPC SpringCloud使用的是Http方式通信, Dubbo的通信方式是RPC 记录学习SpringCloud的restful方式: RestTemplate (本篇)、Feign 贰 RestTemplate 类似 Http...

___大侠 ⋅ 4分钟前 ⋅ 0

React创建组件的三种方式

1.无状态函数式组建 无状态函数式组件,也就是你无法使用State,也无法使用组件的生命周期方法,这就决定了函数组件都是展示性组件,接收Props,渲染DOM,而不关注其他逻辑。 无状态函数式组...

kimyeongnam ⋅ 11分钟前 ⋅ 0

react 判断实例类型

今天在写组件的时候想通过判断内部子元素不同而在父元素上应用不同的class,于是首先要解决的就是如何判断子元素的类型。 这里附上一个讲的很全面的文章: https://www.cnblogs.com/onepixel...

球球 ⋅ 17分钟前 ⋅ 0

Centos7备份数据到百度网盘

一、关于 有时候我们需要进行数据备份,如果能自动将数据备份到百度网盘,那将会非常方便。百度网盘有较大的存储空间,而且不怕数据丢失,安全可靠。下面简单的总结一下如何使用 bypy 实现百...

zctzl ⋅ 31分钟前 ⋅ 0

开启远程SSH

SSH默认没有开启账号密码登陆,需要再配置表中修改: vim /etc/ssh/sshd_configPermitRootLogin yes #是否可以使用root账户登陆PasswordAuthentication yes #是都开启密码登陆ser...

Kefy ⋅ 34分钟前 ⋅ 0

Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分布式集群

有段时间没更新博客了,趁着最近有点时间,来完成之前关于集群部署方面的知识。今天主要讲一讲Zookeeper+Hadoop+Hbase分布式集群的搭建,在我前几篇的集群搭建的博客中已经分别讲过了Zookeep...

海岸线的曙光 ⋅ 41分钟前 ⋅ 0

js保留两位小数方法总结

本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容: 一、我们首先从经典的“四舍五入”算法讲起 1、四舍五入的情况...

孟飞阳 ⋅ 今天 ⋅ 0

python log

python log 处理方式 log_demo.py: 日志代码。 #! /usr/bin/env python# -*- coding: utf-8 -*-# __author__ = "Q1mi""""logging配置"""import osimport logging.config# 定义三种......

inidcard ⋅ 今天 ⋅ 0

mysql 中的信息数据库以及 shell 查询 sql

Information_schema 是 MySQL 自带的信息数据库,里面的“表”保存着服务器当前的实时信息。它提供了访问数据库元数据的方式。 什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,...

blackfoxya ⋅ 今天 ⋅ 0

maven配置阿里云镜像享受飞的感觉

1.在maven目录下的conf/setting.xml中找到mirrors添加如下内容,对所有使用改maven打包的项目生效。 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.al......

kalnkaya ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部