【黑马程序员】————数组、字符串

一、  数组的定义

1.      定义

l   声明数组的类型

l   声明数组的元素个数(需要多少存储空间)

2.      格式

元素类型 数组名[元素个数];

比如:int ages[3];

3.      简单使用

l   简单初始化:int ages[5] = {19, 19, 20, 21, 25};

l   元素有顺序之分,每个元素都有一个唯一的下标(索引),从0开始

l   数组元素的访问:a[i]

4.      初始化

l   初始化方式

  int a[3] = {10, 9, 6};

  int a[3] = {10,9};

  int a[] = {11, 7, 6};

  int a[4] = {[1]=11,[0] = 7};

l   常见错误

  int a[];

  int[4] a;

  int a[b];

  a = {10, 11};

  a[4] = {10,9,8,5};

l   注意

  只能在定义数组的同时进行初始化

  如果想再定义数组的同事进行初始化,数组元素个数必须是常量,或者不写

  数组作为函数参数,可以省略元素个数

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

  

5.      内存分析

l   数组存储空间的大小

l   存储空间的划分(内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的)

l   数组名的作用,查看元素地址

l   数组越界的注意

6.      其他使用

l   数组与函数参数

  数组元素作为函数参数

  数组作为函数参数(sizeof注意)

l   遍历数组元素

  两种方式遍历(while循环和for循环)

  遍历元素值和元素地址

  字符数组的使用

二、  二维数组

1.      什么是二维数组

int ages[5] = {10, 11, 90, 89, 70};

int ages2[3][5]= {
{10, 11, 90, 89, 70},

{10, 11, 90, 89, 70},

{10, 11, 90, 89, 70}
};

l   什么是二维数组?int ages[3][10]; 三个班,每个班10个人

l   相当于3行10列

l   相当于装着3个一维数组

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

2.      存储

l   存储大小

l   存储结构和顺序

l   存储地址问题

3.      初始化

l   int a[3][4] = {1,2,3,4,5,6};

l   int a[3][4] = {{},{},{}};

l   数组元素简单访问

l   int a[][5] = {3,21,31,2,32,1};

l   注意错误:

int a[3][4];

a[3] = {};

4.      遍历

l   遍历所有的元素

l   遍历地址

l   使用场合:五子棋、俄罗斯方块

三、      字符串

1.      什么是字符串

l   简单的字符串”itcast”

l   一个’i’是一个字符

l   很多个字符组合在一起就是字符串了

2.      字符串的初始化

l   char a[] = “123”;  和 char a [] = {‘1’,’2’,’3’};的区别,可以比较大小

l   “123”其实是由’1’、’2’、’3’、’\0’组成

l   “123”的存储分布

l   字符串的输出”%s”,’\0’是不会输出的

3.      \0的作用

  1>字符串结束的标记
  2>printf("%s", name2);
    会从name2这个地址开始输出字符,直到遇到\0为止

4.      常用字符串处理函数

l   strlen(注意中文)

  strlen函数声明在string.h文件中

  strlen函数:计算字符串长度
  1>计算的是字符数,并不是字数。一个汉字算作3个字符
  2>计算的字符不包括\0
  3>从某个地址开始数字符的个数,直到遇到\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" };

【黑马程序员】————数组、字符串

时间: 2024-08-18 09:03:55

【黑马程序员】————数组、字符串的相关文章

黑马程序员--数组与字符串

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 数组 用来存储一组数据 特点:只能存储一种类型的数据 格式: 格式类型数组名 [元素个数]; int a[10];  //定义一个整形的数组a 里面包含10个元素,下标从0开始,即a[0],a[1]…a[9] 10个数据 数组必须先定义然后才能使用/ 数组的初始化 可以再定义数组时进行赋值 例 a[5]={0,1,2,3,4};   定义的初值一次放在一对花括号内,经过上面的定义和初始化后 a

黑马程序员————数组工具类对象建立

今天学习了数组工具类对象的建立巩固掌握以前学习的语句,函数,数组等相关知识 /** 建立一个用于操作数组的工具类,其中包括者常见的对数组操作的函数,如:最值,排序等 @author lostnotes */ public class ArraryTool { private ArrayTool () {}//该类中的方法都是静态的,所以不需要创建对象. //为了保证其他成员不创建该类对象,可以构造函数私有化. } /** 获取整数类型数组的最大值 @param arr 接收一个元素为int类型的

黑马程序员——数组

一.概念         同一种类型数据的集合.简单的来说就是一容器,用来装东西的. 使用数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素. 二.一维数组的格式 格式1:元素类型 [ ]数组名 = new 元素类型 [元素个数或数组长度] ; 如: int []  arr = new int [3];  也可以写成: int arr[] = new int[3]; 格式2:元素类型 []数组名 = new 元素类型 [ ]{元素1,元素2,…}; 如: int []  arr =

《黑马程序员》 字符串 (C语言)

字符串的基本使用 定义方法: char name[10] ="jack";   此时字符串中共包含‘j’,’a‘,'c','k','\0' 中括号中的10代表该字符串最多存放10个字符 字符串的输出 1.printf("jack"); 2.printf(name);              //把数组传入printf语句输出会出现警告 这两种方法输出结果相同,但printf语句默认情况下只认字符串常量,所以第二种方法在编译时会出现警告. 字符串的存储细节: 数组n

黑马程序员----数组的基本使用和注意点

数组(构造类型) 作用:用来存数一组数据 格式:类型  数组名[元素个数];   如:int ages[5]; 一.数组的定义及注意点 正确写法: 1.int ages[3] = {10, 18, 24}; 2.int ages[3] = {10, 20};  // 此时,ages[2]默认为0: 3.int ages[3] = {[1] = 10, [2] = 20}; // 值对后面的两个值进行赋值 4.int ages[] = {10, 13, 23}; // ages占用的字节数为12字

黑马程序员——将字符串进行反转

将字符串进行反转 package com.itheima; /** * 将字符串中进行反转.abcde --> edcba * * 思路 * 1.将此功能封装一个方法 * 2.通过for循环,并通过操作字符 串的方法charAt方法来取出每个字符 * 3.设置一个新字符串ss=="";那么将每次取出来的字符加在字符串ss前面,就可以得到相应 * 字符串的反转字符串 * 4.返回反转后的字符串,并在测试方法中进行测试*/ public class Test5 { public st

黑马程序员-C语言基础:指针类型与指针和数组、字符串的关系

//指针变量就是用来存储地址的,只能存储地址 格式:  int  *p;  这个p为指针变量:指针变量占8个字节 类型是用来说明这个指针指向的类型: 比如上边的int代表这个指针变量会指向int类型的存储空间: int *p = &a;//这样一句可以写,此时的*只是一个标志,表示这个*只是表示p是个指针: *p = &a;//这样写就错了:此时*p表示取p指向的空间的值: 指针疑问:指针既然都占据8个字节,那么为什么要划分类型, 是因为当用*p指针取值或者赋值的时候,知道该取几个字节,比

黑马程序员-C语言基础:数组和字符串

数组:数组的定义注意点 数组初始化正确写法: int args[5] = {1,23,32,4,5}; int args[5] = {12,23}; int args[5] = {[3]=23, [4]=13};//这种写法也可以,直接给其中角标为3和4的赋值 int args[] = {12,23,32};//中括号中没写数组大小,在大括号中一定要写具体数值 int args['A'] = {2,34,5}; 错误写法: int args[];//这样编译器不知道给你开辟多大的内存空间 int

黑马程序员—C语言的函数、数组、字符串

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.函数 定义:函数是代码复用的一种机制. 函数的基本语法: 返回类型 函数名 ( 参数类型 参数名, ... ) {               语句;             return ...         } 3.函数的分类: 根据参数分可以分为  1.有参数函数,2.无参数函           根据返回值分可以分为 1.有返回值函数  2.无返回值函数 4.下面我举一个简单的有