C系列:数组 字符数组

数组

这里我们就通俗易懂的来总结一下数组,简单来说,数组就是

 1)相同数据类型的集合

 2)内存(内部存储器:运行) 开辟一块连续的内存空间

1、数组定义

语法:<类型>  数组名  [<元素数量>]          eg:int arr[5];

数组名含义:arr表示数组首元素地址  arr<=>&arr[0]  是一个常量

注意!此处[]中元素数量必须为大于0的整型常量表达式!!!

eg:int arr[n];//err

     int arr[1.2]//err

     int arr[1+2]//true

     int arr['a'];//true     此处a的ascii码值为97

实例:设计一个包含有10个int 元素的一堆数组

1)int arr[10];数组中元素为随机值

2)int arr[10]={1,2,3,4,5,6,7,8,9,10};设计10个整形元素的一维数组

      int arr[10]={1,2,3};部分初始化  其余类型默认值  零

      int arr[10]={};  10个类型的默认值 

2、数组的遍历

  for(int i=0;i<6;i++)

  printf("%d",arr[i]);

3、数组的长度

当数组名的使用 与 就近数组名的定义在同一个作用域  数组整个大小可以用sizeof();来计算,此处sizeof();不是函数调用,是运算符,求占用内存大小

 int len=sizeof(arr)/sizeof(arr[0]);//计算数组长度公式

字符数组(有'\0'做结尾为字符串数组,没有的为字符数组)

初始化方式:

1.逐个字符初始化

如:char str[5]=['h', 'e', 'l', 'l', 'o'];

若初值个数小于数组长度,其余元素自动为'/0'。

长度计算:int len =sizeof(str)/sizeof(str[0]);

2.用字符串常量初始化

char str[]=“hello”;//系统会自动在末尾加上'/0'作为结束标志,此时数组实际占用空间比双引号内字符数多一。

字符串有效长度:(头文件#include<string.h>)

strlen();实现原理:从数组起点开始统计到'\0'结束('\0')前有效字符个数;

eg:strlen("hello\0abc")--->5;

sizeof();和strlen();区别在于:前者会包含'/0',后者不会。

3.字符与字符串的获取

3.1输入一个字符

    char val;

    scanf("%c",&val);

    或者 char val=getchar();

3.2输入字符串

   1)scanf函数

   char buff[100];

   char arr[100];

   scanf("%s%s",buff,arr);地址取不取都可以

     默认以空格或者换行分割字符串

  2) gets  函数(不推荐): gets(str)  可读取字符串,遇到回车停止,它会将换行符丢弃 。但由于存在缓冲区溢出风险(不检查输入长度),已不推荐使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值