黑马程序员--C语言数组

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

int main()
{
    //数组名 代表地址
    //数组的定义格式: 类型 数组名【元素个数】; 如果要在定义数组的同时进行初始化,数组元素个数 只能是常量 或者不写
    // 数组的特点
    只能存放一种类型的数据,比如int类型的数组、float类型的数组
    里面存放的数据称为"元素"
   // int ages[5];
    //int ages[5] = {//int ages[] = {19,19,22,27,26};}; 或者 int ages[] = {19,19,22,27,26};
   // 元素:19 19 22 27 26
   // int ages = [[3]=22, [5]=26];

   /* 元素有顺序之分,每个元素都有一个唯一的下标(索引),从0开始
    数组元素的访问:a[i]
    如:
    ages[0] = 19;
    ages[1] = 19;
    ages[2] = 22;
    ages[3] = 27;
    ages[4] = 26;

    数组存储空间的划分:内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的
    数组名的作用:查看元素地址

    数组作为函数参数
    // 数组作为函数参数,可以省略元素个数
    // 数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组

   */
    // 遍历:按顺序查看数组的每一个元素(while循环和for循环)

    int ages[] = {1, 2, 88, };// 为了使元素个数可以更改方便
    int count = sizeof(ages)/sizeof(int);// 定义变量count 存储元素个数

    for (int i = 0; i < count; i++)// 遍历整个数组
    {
        printf("ages[%d]=%d\n",i ,ages[i]);// 打印整个数组元素
    }
    return 0;
}

数组的简单练习

int main()//数组名 就代表地址 首元素地址即元素组地址
{
    char cs[5]= {'a','c','d','f','b'};// 定义一数组
    printf("%p\n",cs);
    for (int i = 0; i<5; i++)
    {
        printf("cs[%d]的地址是%p\n",i,&cs[i]);
    }
    return 0;
}

//二维数组
二维数组是一个特殊的一维数组:它的元素是一维数组。例如int a[2][3]可以看作由一维数组a[0]和一维数组a[1]组成,
这两个一维数组都包含了3个int类型的元素

数组与函数
// 设计一个函数,找出整形数组元素的最大值

int maxOfArray(int array[],int length)
{
    //定义一个变量存储最大值(默认就是首元素)
    int max = array[0];
    //遍历整个数组 找出最大值
    for (int i = 1; i<length; i++)
    {
        //如果当前元素大于Max,就用当前元素覆盖max
        if (array[i]>max)
        {
            max = array[i];
        }
    }
    return max;
}
int main()
{
    int ages[] = {11,12,34,56,78,90};

    int max = maxOfArray(ages, sizeof(ages)/sizeof(int));

    printf("%d\n",max);
    return 0;
}

字符串数组
1.使用场合
* 一维字符数组中存放一个字符串,比如一个名字char name[20] = “mj”
* 如果要存储多个字符串,比如一个班所有学生的名字,则需要二维字符数组,char names[15][20]可以存放15个学生的姓名(假设姓名不超过20字符)
* 如果要存储两个班的学生姓名,那么可以用三维字符数组char names[2][15][20]
2.初始化
char names[2][10] = { {‘J’,’a’,’y’,’\0’}, {‘J’,’i’,’m’,’\0’} };
char names2[2][10] = { {“Jay”}, {“Jim”} };
char names3[2][10] = { “Jay”, “Jim” };

练习

// 打印字符串数组中的某个字符

#include <stdio.h>

#include <string.h>

int char_contains(char str[], char c);// 声明

int main()
{
    char name[] = "itcast";// 定义一个字符串

    int result = char_contains(name, 't');
    printf("%d\n",result);
}

int char_contains(char str[], char c)
{
    for (int i = 0;i<strlen(str);i++)// 遍历整个字符串
    {
        if (str[i] == c)
        {
            return 1;
        }
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值