A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 米匠 中级黑马   /  2014-10-8 21:29  /  1176 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、数组的定义和赋值
int ages[5] = {19, 29, 28, 27, 26};  //每个元素占4个字节,整个数组的大小为4*元素个数5
int ages[] = {19, 29, 28, 27, 26};  //定义数组可以不声明长度,后边大括号里的元素个数决定数组的长度
int ages[“A”] = {19, 29, 28, 27, 26}  //”A” == 65,所以这个数组的长度为65

ages[0] = 29;  //为某一个元素赋值或替换

二、数组的遍历
printf(“%d\n”, ages[0]);  //取出某一个元素

for(int i=0; i<5; i++)
{
printf(“ages[%d]=%d\n”, i, ages);  //逐个元素遍历
}

三、计算数组的长度
int count = sizeof(ages)/sizeof(int);

Eg:
for(int i=0; i<count; i++)
{
printf(“ages[%d]=%d\n”, i, ages);
}

四、数组的内存细节
char cs[5] = {‘a’, ‘A’, ‘D’, ‘e’, ‘f’};
char数组内存如下:

1、数组的地址就是首个元素的地址
for(int =0; i<5; i++)
{
printf(“cs[%d]的地址是:%p\n”, i, &cs);
}
2、数组的名就是数组的地址
printf(“%p\n”, cs);


int ages[3] = {10, 19, 18};
printf(“%p\n”, ages);
for(int i=0; i<3; i++)
{
printf(“ages[%d]的地址是:%p\n”, i, &ages);
}

Int数组内存如下:


五、数组作为形参
void method(int array[])  //数组作为形参无需声明数组长度
{
array[0] = 100;
}

int main()
{
int arr[] = {10, 20, 30, 40, 50};
method(arr);  //数组名字作为实参传进函数时,相当于把数组的指针传入函数中,所以形参的地址和实参的地址是一个地址,所以改变同一块内存
}

六、二维数组
int ages2[3][5] = {
{10, 20, 30, 40, 50},
{10, 20, 30, 40, 50},
{10, 20, 30, 40, 50}
};
int ages2[2][1];   //访问第三个数组中第二个元素,即20

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1 赞一个!

查看全部评分

4 个回复

正序浏览
希望以后对我有用,先谢谢了呵呵
回复 使用道具 举报
四、中的图片传错了,大意了,,,,,应该是这个

回复 使用道具 举报
易孟飞 发表于 2014-10-8 22:03
int ages[“A”] = {19, 29, 28, 27, 26}  //”A” == 65,所以这个数组的长度为65这句错误,单引号
...

果然如此,,,,“A”== 0xffc......   而‘A’才等于65,不胜感激
回复 使用道具 举报
本帖最后由 易孟飞 于 2014-10-8 22:04 编辑

int ages[“A”] = {19, 29, 28, 27, 26}  //”A” == 65,所以这个数组的长度为65这句错误,单引号
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马