10月25号,关于数组的练习

一维数组:

数据结构类型:线性结构

数组:A 1,2,3,4,5,6,7,8 A[1];

数组概念:同类型数据的集合,他们在内存中是一片连续存储的区域
int short long long long
float double
char

数组的定义格式:
类型说明符 数组名字[元素个数]; //元素个数必须用常量
int a[20] //合法
int num = 20, a[num]; //不合法,num不是常量
const int num = 20, a[num]; //也不合法,num是伪常量

define num 20

int a[num]; //合法,num是标准常量

数组的初始化:
1,完全初始化 int arr[5] = {1,2,3,4,5};

2,完全初始化 int arr[] = {1,2};
如果初始化时数组元素个数省略了,那么赋值的个数就代表数组元素的总数.

3,不完全初始化 int arr[5] = {1,2};
当使用不完全初始化时,未赋值元素的值默认为0;(测试int类型式)

数组元素的获取:

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

arr[0] = 100; //下标取值法,数组的下标是从0开始.
arr[4] = 1000;

注意,注意,注意:一定不要越界,数组的元素的小标最大值总是比元素个数少1

当数组元素较多时,且有一定规律时,如何完成赋值.
比如定义一个100个元素的数组,给每个元素赋值,取值范围1-100;
int a[100],i;
for (i = 0; i < 100; i++)
{
a[i] = 1 + rand()%100;
printf(“%d “, a[i]);
}

二维数组:
类型说明符 数组名字[第一维数量][第一维数量]; //数组元素个数 = 行数 * 列数;

完全初始化时,数组的行数可以省略,数组第一维的数量可以省略.
int a[4][3] = { {80,90,100},{66,77,88},{33,44,55},{100,35,78}};
int a[][3] = { {80,90,100},{66,77,88},{33,44,55},{100,35,78}};
int a[][3] = {80,90,100,66,77,88,33,44,55,100,35,78};

不完全初始化时,未初始化的值默认为0;
int a[4][3] = { {80,90},{66,88},{33,55},{100,35,78}};
相当于 a[4][3] = { {80,90,0},{66,88,0},{33,55,0},{100,35,78}};

int a[4][3] = {80,90,66,88,33,55,100,35,78};
相当于 a[4][3] = { {80,90,66},{88,33,55},{100,35,78},{0,0,0}};

二维数组的取值方式:下标取值
int a[4][3] = { {80,90,100},{66,77,88},{33,44,55},{100,35,78}};
a[1][2] = 100; //正确,将第二行,第三列赋值为100

关于数组的不合法操作:

1,用一个已经初始化的数组对另一个数组赋值,
即使是元素类型相同,数组大小相同,
这样的用法也是不允许的:
int x[3]={7,8,9}; int y[3]; y=x; /错误/

2,对数组进行整体输入输出。
int x[3]={7,8,9}; printf(x);/错误/

3,数组比较。
int x[3]={1,2,3};
int y[3]={4,5,6};
if(x < y) /错误/

4,数组整体运算。
int x[5]={5,6,7,8,9};
int y[5]={2,3,4,5,6};
x+=y;

取数组元素的地址进行加减运算时,实际上相当于沿着当前地址前进或后退,
每次移动的幅度取决于数组的类型.

比如int a[5];
假如:&a[0] //a[0]的地址是002DFCD0
那么 &a[0] + 1 得到

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值