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

来源:互联网 发布:上海程序员工资水平 编辑:程序博客网 时间:2024/04/29 14:56

——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