当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 学习笔记 > 数组怎么用?学霸告诉你怎么用数组

数组怎么用?学霸告诉你怎么用数组 时间:2018-08-22      来源:未知

数组:数据的组合

1、是构造类型

2、通过下标个数确定数组是一维数组还是二维数组

3、数组内的元素的类型必须保持一致

4、在内存空间中是连续的

一维数组:

一般定义形式

数据类型:(数组内元素的数据类型)数组名[元素的个数] int a[3]; 数组类型 int [3]

数组的初始化:

完全的初始化:

int a[3]={1,2,3};

int a[ ]={1,2,3};默认为完全初始化不完全初始化

int a[3]={1};//其余元素默认为零不初始化:

则里面的值为随机数

对static数组元素不赋初值,系统会自动赋以0值。局部变量的存储位置会从栈区换为数据区

如何引用数组内元素?数组名[下标] 注意下标从0开始

数组的数据类型:例如:int a[3]:的数据类型为int [3] 通过sizeof可以测量数据类型的大小

把元素变量当做元素个数时不能够对数组进行初始化,编译器会报错。即不能用变量定义数组维数。

int n = 3;

int a[n]={1,2,3};(✖) int a[n];(✔)

数组越界可能出现的问题

1、打印辣鸡值

int main (int argc ,const char *argv[])

{

int a[3]={1,2,3};

int i ;

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

{

printf(“%d ”,a[i]);

}

输出 1 2 3 3 41234244 在栈区中保存数据是连续的 数组a后保存的是变量i的值, 所以在输出完数组a中三个值之后下一个输出为i值。

2、段错误segmentation fault(core dumped)

int main (int argv ,const char *argv[])

{

int a[3]; int i;

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

{

scanf("%d",&a[i]);

}

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

{

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

}

}

越界可能非法访问内核数据

(gcc -g 调试作用 找段错误出现在哪儿)

 

如果一个串长于一行,可在行尾用反斜线“”续行。#define LONG_SRTING “This is a very long

 

String that is used as an exampel”

字符数组 字符串打印

puts和printf的%s打印字符串都是遇‘’停止

字符串长度函数 strlen

功能:测量字符串长度

返回值:字符串长度,不包括''. 参数:字符串或者字符串数组数组名

#include

size_t strlen (const char *s)

字符串拷贝函数 strcpy功能:字符串拷贝#include

char *strcpy(char *dest,const char *str)

注意:1、目标空间足够大,否则会出现数组越界问题

2、连同‘’一起拷贝

3、不能实现字符串自拷贝

字符串连接函数 strcat

功能:将两个字符串拼接在一起#include

char *cstrcat(char *dest,const char *src) 注意:1、前面字符串的''开始覆盖。

2、目标空间足够大。

3、不能实现字符串自连接。

字符串比较函数 strcmp

功能:比较两个字符串是否相同,其实是将两个字符串对应的字符一一比较,当遇到字符的

ascII值不同或者遇到''则停止比较#include

char *strcat(char *dest ,char *src) 返回值:1、当s1>s2,返回正整数 1

2、当s1=s2,返回0

3、当s1

二维数组

一般形式

数据类型(数组内元素的数据类型) 数组名[行标][列标] int a[2][3];

初始化(同一维数组) 完全初始化

不完全初始化 引用二维数组内元素

数组名[行标][列标] 行标列标也是从0开始二维数组你的数据类型:int [2][3]

二维数组锁占空间的大小 sizeof(a)或者sizeof(int [2][3])

杨辉三角

二维数组

一般形式

数据类型(数组内元素的数据类型) 数组名[行标][列标] int a[2][3];

初始化(同一维数组) 完全初始化

不完全初始化 引用二维数组内元素

数组名[行标][列标] 行标列标也是从0开始二维数组你的数据类型:int [2][3]

二维数组锁占空间的大小 sizeof(a)或者sizeof(int [2][3])

上一篇:Makefile详细教程,附带经典案例

下一篇:c语言指针详解,学霸课堂记录

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部