黑马程序员——视频学习过程4

来源:互联网 发布:android json 编辑:程序博客网 时间:2024/06/03 05:56

-----------android培训java培训、java学习型技术博客、期待与您交流!------------ 

视频九:

3、折半查找

在一个有序的数组中

 

6、二维数组

数组名[常量表达式1][常量表达式2

二维数组中,第一维可以省略,第二维长度不能省略。

 

8、二维数组存储

按行排列,即放完第一行后放入第二行。

数组的首地址 ==数组名==&a[0] ==&a[0][0]

通过数组名计算数组占用的总字节数。

 

数组名座位函数参数注意事项

1)类型和长度要一致

2)二维数组作为函数的形参,可以不写第一维的长度

 

18、字符串位于双引号中的字符序列,在内存中以\0结束。

C语言中没有字符串变量,可以用字符数组来存放字符串。

字符数组的作用:

1)保存字符

2)保存字符串

Char str[4]={"abc"};还有\0所以只能是三个

Str[0]   a

Str[1]   b

Str[2]   c

Str[3]   \0

第二种初始化方法

Char str2[4]="abc";

puts有自动换行,但是不能格式化输出


视频10:

2、在printf中打印字符串,如果使用%c的话,就需要用for循环来一个一个的打印了,但是如果使用%s的话,只需要提供字符串名即可。但是字符串里面遇到\0就结束了。

注意点:

1)如果以%s格式进行输入的话,注意空格问题。

如果输入的字符串有空格,则空格之后的字符无法被接收保存。

(以%s的格式输入,scanf遇到了空格,就结束了。)

2)输入的字符串的长度要小于数组的长度,越界。

 

3、字符串结束符的使用

专门计算字符串长度的方法

1)使用字符串函数

strlen(str1

2)以'\0'作为条件进行判断,遇到\0就结束,\0之前的就是字符串长度。

 

4、puts()可以自动换行。也可以不是数组的首地址,可以是元素地址。必须得是字符数组。

gets()数组长度100,输入120是不会报错的,不会帮助查看越界问题。

 

5  strcpy    字符串拷贝函数

Strcmp    字符串的比较函数       ——比较字符的ASCII值或者比较在字典中出现的次序

Strlen       字符串的长度计算函数。不包含\0.

 

10、指针

指针的概念:

内存单元的编号也叫做地址,根据内存单元的编号或地址就可以找到所需内存单元,所以通常把这个地址称为指针。

 

11、指针变量

指针是一个地址,是一个常量。

指针变量存放一个地址,是一个变量。

 

自我理解,指针一定要先给指针一个初始空间,一个初始的地址,然后才能给其赋值,因为有了空间,才有地方放值。如果没有指向空间或者指向一个地址就赋值,是液指针,一定会出问题。

 

自我总结:指针一定是有终点的,有目的的。比如说一级指针可以这么说,是杯子里的水,地址是杯子,目的是水。二级指针是这张桌子上面杯子里的水,二级的地点是桌子,目标是杯子。输出的本质是为了水。


视频11:

1、一维指针数组:存放地址的数组。要指向相同类型的指针变量。

*Pa[]={&a,&b}}    pa是数组的首地址,又是变量a的地址。

 

6、两个指针变量之间的运算

常见用法:两个指针都指向同一个数组

1)判断两个指针变量指向的元素是否连续。

2)判断两个指针变量之间相隔几个元素。

 

7、二维数组指针

行指针,用来指向二维数组的没一行,存放的行的首地址。

Inta[2][3];

Int b[2][2];

Float f1[4][4];

定义一个指向数组a的行指针(二维i数组指针)。

Int (*p)[3] = a;

*(*(p+i)+j)     获取二维数组的每个元素。



0 0