【零基础学C语言】知识总结六:数组,字符与字符串

1、介绍数组

一个常量变量就是一个用来存储数值的命名区域。同样,一个数组就是一个用来存储一系列变量值的命名区域,因此,可以使用数组组织常量变量。也就是说,数组是一组有序数据的集合,存储在数组中的值称为数组元素。每个数组元素有一个相关的索引(也称为关键字),它可以用来访问元素。在大多数编程语言中,数组都具有数字索引,而且这些索个通常是从0或1开始的。数组中的每个元素都属于同一个数据类型。

一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组。一维数组是计算机程序中最基本的数组。二维及多维数组可以看作是一维数组的多次叠加产生的。

2、一维数组

当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。通过给出的数组名称和这个元素在数组中的位置编号(即下标),程序可以引用数组中的任意一个元素,一维数组的引用定义格式为:类型+数组名[下标]如:int  a[10]

其中,a是一维数组的数组名,该数组有10个元素,依次表示为a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]。需要注意的是,数组是从零开始是,所以a[10]不属于这一个数组的空间范围中。当在说明部分定义了一个数组变量后,编译程序会在内存空间中开辟一串连续的存储单元。对于数组而言,程序的执行部分使用的是数组变量而不是数组类型。在引用时,下标必须是整数,但可以是整型变量或整型表达式。如果使用表达式,会先计算表达式以确定下标。程序只能逐个应用数组中的元素而不能一次引用整个数组,再定义数组时,需要指定数组中元素的个数,方括号里边的常量数值表示了数组的长度。在数组定义前加const关键字可将整个数组变为只读,将不再可以对数组进行写入数据。

如: int a;  float a[10]; (非法)    int n=5;  int a[n];(非法)    int a[5+6]; (合法的)

初始化:(注意,在使用数组之前,一定要先初始化)

1、数组的初始化可以在定义时一并完成

2、可以只给部分元素赋初值,其他的元素赋0。

3、如给全部元素赋值,则在数组中说明,可以不给出数组元素的个数

4、数组的初始化可以是用循环进行输入数值赋值,也可以是在程序中指定赋值

例子:

#include<stdio.h>//寻找数字并查看在哪个位置​
int search(int n, int a[], int max);
​int main(void) 
{    int a[] = {1,6,5,7,4,3,2,8,11,9,10};//初始化一      
          /* int a[10] = {0}//初始化二  全都初始化为零         
       for (i = 0; i < 10; i++) {//初始化三自己输入初始化(这种初始化最好定义在二之上,否则其他如果有元素没有被赋值的话会出错)    
          scanf("%d", &a[i]);            
 }           
     */    int n;    scanf("%d", &n);       

     //整个数组占用的字节数可用sizeof(a)表示出来  
  int h = search(n, a, sizeof(a) / sizeof(a[0]));//用整个数组占用的字节数除以首元素的字节数可知道数组的大小​   
 
if (h != -1) {​ 
printf("%d在第%d位上", n, h+1);  

  }else {  printf("没有这个数字");  
  }​  
  return 0;
}

int search(int n, int a[], int max) {  
     int t = -1;  
      int i;​ 
   for (i = 0; i < max; i++) {//遍历数组     
   if (n == a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值