C 数组

作者: 2010jing | 来源:发表于2016-06-15 22:56 被阅读52次

有时候,需要存储一大堆相同类型的数据的时候怎么办?
我们虽然可以创建很多个变量,但是终究不是办法,这个时候我们就需要数组了。

在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。

数组解决了:

  1. 描述数组的性质,定义数组变量
  2. 使用数组,包括通过数组变量使用其中的变量
  3. 实现数组,即在内存里为数组安排一种存储方式,让程序方便操作

定义

和普通基本类型相似 都需要指定类型 和 需要一个变量,区别是,需要在变量名后加上 ,
而且在 内需要指定数组的大小。

int a[10];// 定义一个 int 类型数组 a,长度为 10
double b[5]; //定义一个 double 类型数组 b,长度为 5

使用

使用数组的最基本是操作元素访问。首元素下标规定为 0 ,这样,n 个元素的数组范围就是从 0 到 n-1 。
如果超过 n-1,则会报下标越界错误。新手经常犯这个错误。

int a[4];
a[0] = 2;
a[1] = 10;
a[3] = a[1] + a[2];

显然,这里我们看不出这里数组有多大作用;
我们来看下 Fibonacci数的数组,获取前30个数,然后从大到小打印出数组内的所有数
直接上代码

long fib[30];
int n;
fib[0] = 1;
fib[1] = 1;

// 计算前30个数,并存入对应数组内
for(n =2;n<30;n++){
    fib[n] = fib[n-1] + fib[n-2];
}

//打印结果
for(n=29;n>=0;n--){
    printf("%d", fib[n]);
}

从这个例子可以看出, 利用循环变量可以统一形式访问一批数组,这样做可以带来很多方便。用long 类型的数组,是考虑到元素有可能变得很大。

数组初始化

int b[4] = {1,2,3,4};
double d[3] = {1.23,2.34,4.11};

出一道小题给大家练练手,
题目:二进制转换 写一个函数命名为 bin2int, 给定一个二进制数的 0/1 字符串,它能计算出这个字符串所表示的整数值。

int main(){
    int n = bin2int("11101110");
    printf("%d\n",n);
    return 0;
}

请大家完成 bin2int() 方法,在下面回复贴上代码,最好带上注释解释。

相关文章

  • C语言

    C 指针、指针变量、函数指针、指针函数、指针数组、数组指针、C 数组

  • 数组笔记

    #数组 一.C#中的数组 (一)数组的存储 在C...

  • C语言数组的升维与降维之说

    C语言数组的升维与降维之说 C语言数组的升维 C语言数组的降维

  • 指针数组和数组指针

    指针数组|存储指针的数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组。 例如:int *p[10]...

  • 再学C语言之指针要点

    C之字符数组 C之指针引用字符串 C语言之数组指针 数组指针:首先它是一个指针,它指向数组指针数组:首先它是一个数...

  • C语言的指针与数组(进阶篇之一)

    一、一维数组与指针 (1).数组指针在C语言中,数组的首地址称为数组指针。而C++规定,数组的首地址可用数组名a表...

  • Foundation框架(二) — NSArray、NSMuta

    Objective-C的数组和许多其他的编程语言都不太一样,Objective-C的数组比C++,Java的数组强...

  • 算法题之: 三数求和并去重

    题目:对于一个整数的数组, 是否存在a, b, c 使得 a + b + c = 0, 返回a b c 数组 相同...

  • 2020-01-19(学习笔记)

    数论概论 勾股数组a²+b²=c²与单位圆x²+y²=1 (a/c)²+(b/c)² = 1 => 勾股数组的正整...

  • C 数组

    我们已经学习了 C 语言的基本数据类型,了解的它们的声明、初始化、内存占用等,可以处理一些简单的运算!但是编写一个...

网友评论

    本文标题:C 数组

    本文链接:https://www.haomeiwen.com/subject/rjxmdttx.html