第一阶段07 C语言数组初阶

*加入CSDN是出于记录,希望有不足之处多加指正。

1、基本概念

可以一次性定义多个相同类型的数据,并且使用的都是一片连续的内存。
int a,b,c,d,;

int a [3];

1.先申请一片内存名字是 a ;
2.该内存中存放 int [3];分成三份,三份中每一个份都是一个整型 4字节。
如何初始化:(定义时顺便赋值称为初始化)

int a [10] = {1,2,3,4,5,6,7,8,9,10};  //初始化
int b [9] = {1,2,3,4,5,6,7,8,9,10};   //错误,数组越界
// 编译器出现警告,数据10将不会被放到内存中,被编译器优化掉了

int c[] = {1,2,3,4,5,6,7,8,9,10};   //正确
int d[10] = {1,2,3}; //正确的,不完全初始化,未初始化的数据会被默认写成 0 
int f[10];  //没有初始化,数组的每个数组都是随机值

2、数组元素的引用

存储的结构:一篇连续的内存,按照具体类型来分割成若干个大小相同的小格子
元素下标:

int arr [3] = {100,200,300};
printf("arr[2]:%d\n" , arr[2]);

arr = {150 ,250 ,350};  //错误,数组只有在初始化的时候可以整体赋值,如果想修改其他值,需要一个一个元素的修改
arr [1] = 250; //修改数组的第二位元素为 250

a[11]= 350;  //在C语言中唯一一个允许越界访问的方案,但是目前打写法是属于非法访问的,不属于自己打内存,后期可以通过函数来扩展内存。

3、字符数组

概念:专门用来存放字符类型数据的数组,就成为字符数组。

char c1[3] = {'a','b','c'};      //字符数组
char c1[4] = {'a','b','c','\0'}; //字符串数组
    //有结束符标记表示为字符串数组
char c3[10] = {"hello"} ; //使用字符串来初始化数组
char c4[10] = "hello";    //大括号可以省略 
c3[3] = 'L';

4、多维数组

概念:在一个数组里面还有数组。

int arr [2][3];  //二维数组

int a[2][3] = {{1,2,3},{4,5,6}};
int b[2][3] = {{1,2,3},{4,5,6},{7,8,9}};  //错误的,越界访问
int c[2][3] = {{1,2,3},{4,5,6,7}};       //错误的,越界访问

在这里插入图片描述在这里插入图片描述

5、数组万能拆解方法

任意打数组不管有多复杂,都可以分为两部分
第一部分:说明数组的名字元素的个数;
第二部分:说明该数组中存放的类型;

int a [4] ; //第一部分 a[4],第二部分说明数据类型为 int;
int b [3][4]; //第一部分 b[3], 第二部分 int[4],说明该数组中存放的类型为数组
int *c [6];  //第一部分 c[6] ,第二部分int * ,说明该数组用来存放整型指针
int (*e[7])(int ,fole); //第一部分 e[7],第二部分 int (*)(int ,fole)

补充练习:
scanf输入10个数据到数组中,在循环输出10个。

#include <stdio.h>
int main(int argc,char const argv[])
{
   int i;
   int a[10];
  
   for (i = 0;i <=9; i++)
      {
             printf("请输入a[%d]数 \n", i);
             scanf("%d",&a[i]);  while(getchar() != '\n');              
     }
   for(i = 0;i <=9; i++)
     {
              printf("%d\n",a[i]);    // 这里a[0]循环10次
     }
   return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值