c语言——一维数组

概念

具有一定顺序的若干变量的集合。

整形数组

定义格式

存储类型 数据类型 数组名[元素个数];

eg:int a [10];

数组名:代表数组首地址,符合标识符命名规则,在同一个函数中,数组名不能同其他变量同名。(注意:地址常量不能被赋值,arr++;错误)

访问元素:数组名[下标]。下标从0开始,如果有n个元素,下标范围:0~n-1(注意数组越界)

特点

数据类型相同

内存连续

初始化

全部初始化

int arr[5]={1,2,3,4,5};

部分初始化

为赋初值的元素值为0

int arr[5]={1,2,3};// 1 2 3 0 0

未初始化

元素值为随机值

int arr[5];

定义空数组

int a[5]={0,0,0,0,0};

int a[5]={0};

int a[5]={};

引用

1.必须先定义后引用

2.每次只能引用一个元素a[i],如果想要引用所有元素需要循环遍历

3.引用数组元素防止数组越界

4.打印地址用"%p"

数组遍历

把下标当作循环变量,for循环遍历

int arr[5]={};
int i;
for(i=0;i<5;i++)
    scanf("%d",&arr[i]);
for(i=0;i<5;i++)
    printf("%d\n",arr[i]);

数组大小

数组大小 = 元素个数 * 数据类型的大小

数组大小 = sizeof(数组名)

计算数组元素个数

直接观察

数组大小 / 数据类型大小 = 数据元素个数

sizeof(a)/sizeof(int)

sizeof(a)/sizeof(a[0])

清零函数

1.bzero

#include <strings.h>

void bzero(void *s, size_t n);

功能:将内存空间设置为0

参数:s:要清空空间的首地址

n:要清空的字节数

返回值:无

2.memset

#include <string.h>

void *memset(void *s, int c, size_t n);

功能:将内存空间设置为0

参数:s:要清空内存的首地址

c:要设置的值,置0,其他无法实现

n:字节大小

返回值:要清空内存的首地址

字符数组

概念

字符数组就是元素数据类型为字符型的数组

三种形式

1.char a[]={'a','b','c'};//按字符赋值sizeof(a)=3

2.char b[]={"abc"};//字符串赋值sizeof(b)=4

3.char c[]="abc";//字符串赋值sizeof(c)=4

字符串的输入输出

char s[32]={};

输入

1.scanf("%s",s);//注意遇到空格和\n都会认为字符串输入结束

2.scanf("%[^\n]",s);//直到遇到\n结束可以输入空格

3.for循环

for(i=0;i<32;i++)

scanf("%c",&buf[i]);

4.gets

char *gets(char *s);

功能:从终端获取字符串

参数:s:目标字符数组首地址

返回值:同参数

//使用时会报警告,因为不检查数组越界

输出

1.printf("%s\n",buf);

2.for(i=0;i<32;i++)

printf("%c",buf[i]);

3.puts

int puts(const char *s);

功能:向终端输出字符串

参数:要输出的字符数组的首地址

返回值:输出字符的个数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值