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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© flairamyz 中级黑马   /  2015-11-7 23:54  /  2226 人查看  /  26 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

第六天 数组

一.数组

1.是什么?
用来存放一组数据的容器

2.有什么用?
​用于把同一类型的一组数据管理起来

3.怎么用?
定义:数据类型 数组名[长度(数量)]
初始化:类型 数据名[长度] = {1,2,3}
赋值:数组名[角标] = 值
使用:数组名[角标],如int a = arr[1];

4.什么时候用?
当需要管理一组有关联的数据时

5.特点?
1)数组必须要定义长度(正整数),定义时初始化长度必须是常量或之后单独初始化;
    ​int arr[3] = {1,2};
    ​arr[2] = 3;

    ​int arr1[] = {1,2};
    ​arr1[2] = 3;//不正确,越界了

    ​int arr2[];//不正确,因为长度不确定
2)数组是有序的,从角标0开始,角标<数组长度,类型一致;
3)数组有地址(数组名)里面的元素也有地址,数组当参数时(长度可省)传递的是地址
    ​int a[5];
    ​printf("%lu\n",sizeof a/sizeof(int));//20/4 = 5
4)数组当参数传递时是指针类型,所以如果需要数组长度的话,需要额外传递;
//数组下标不合法时有时候编译器不会报错,但是要避免下标越界;
//完全不初始化时,元素为垃圾数;部分初始化时,为0或者'0'

5)内存分配:从高位取址

file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/0a30a80c-6838-4116-9199-ea962380536a.png
从值的角度讲:数组名 = 数组首地址的地址 = 数组名取地址

二.二维数组
1.是什么?
用来存储一组数据的容器

2.有什么用?
用于把同一类型的一组数据管理起来

3.怎么用?
定义:类型 数组名[数组的数量][子数组长度]
初始化:类型 数组名[数组数量][子数组长度] = {{},{},{}};
赋值:数组名[][] = 值
使用:例如int a = arr[0][1];

4.什么时候用?

5.特点?
1)与一维基本一样,但传递子数组时传递的是地址
2)数组数量:行数 长度:列数
3)每个子数组类型和长度一样

三.字符串
1.是什么?
是一串字符,也是一个以'\0'结尾的字符数组

2.有什么用?
用于表示一串字符或者文本数据

3.怎么用?
定义及初始化:
char attr[] = {'a','b','c','\0'};
char attr1[] = "abc";
输出:
printf("%s\n",s);
printf("%s\n",&attr[0]);
赋值:
strcpy(字符串变量名,"字符串");//include<string.h>
//字符串不能批量修改
strcpy(attr,"123");//把attr的内容改为123

4.什么时候用?

5.特点?
1)后面必须有'\0'结尾,否则只算普通的字符数组,但'\0'不会输出,只表示字符串结束
2)字符串输出占位%s必须遇到'\0'才能结束,否则会继续输出更高位地址值的字符
3)strlen函数用于计算一个字符串的长度(字符数量),使用必须引用<string.h>
4)strlen不会计算'\0',且碰到\0结束,sizeof不会受\0影厂,且长度包含'\0'
5)字符串一定是字符数组(且以'\0’结尾),但字符数组不一定是字符串










26 个回复

倒序浏览
沙发....张静是我们ISO1030期的班花.
回复 使用道具 举报
牛,都好努力呀!
回复 使用道具 举报
这个同学上课很认真,笔记做的好详细,顶!!!
回复 使用道具 举报
赞一个,我想了一个方法打印 抛物线,分享一下:
#include <stdio.h>
int main()
{
    for (int a=1; a<20; a++)
    {
        for (int b=1; b<(a-10)*(a-10)+2; b++)
        {
            if(b==(a-10)*(a-10)+1)
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
            
        }
        printf("\n");
    }
    return 0;
}
回复 使用道具 举报
发错地了.......
回复 使用道具 举报
支持一下
回复 使用道具 举报
抛物线程序我怎么执行不了?
回复 使用道具 举报
很详细 很细致啊   赞一个赞一个   
回复 使用道具 举报
原来是我每天面对的美女张静啊  认识我不
回复 使用道具 举报
865393462 来自手机 中级黑马 2015-11-8 00:25:32
11#
我来赞一个!笔记做的不错!比我强多了!
回复 使用道具 举报
好好学吧,少年
回复 使用道具 举报
顶!
回复 使用道具 举报
love阿木蛋花 发表于 2015-11-8 00:24
原来是我每天面对的美女张静啊  认识我不

=。=你们真的是。。。。。。
回复 使用道具 举报
865393462 发表于 2015-11-8 00:25
我来赞一个!笔记做的不错!比我强多了!

哈哈哈,谢谢
回复 使用道具 举报
ooooooo哦哦!
回复 使用道具 举报

谢谢!共同进步
回复 使用道具 举报
熊德玺 发表于 2015-11-8 00:19
很详细 很细致啊   赞一个赞一个

哈哈,还好还好,就是随便记的
回复 使用道具 举报
tsc0000 发表于 2015-11-8 07:59
好好学吧,少年

嗻、、、、、、、、
回复 使用道具 举报
zhuanshu1458 发表于 2015-11-7 23:57
沙发....张静是我们ISO1030期的班花.

呵呵呵呵呵呵哒,,,,别说瞎话了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马