-----------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有自动换行,但是不能格式化输出
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、二维数组指针
行指针,用来指向二维数组的没一行,存放的行的首地址。
Int a[2][3];
Int b[2][2];
Float f1[4][4];
定义一个指向数组a的行指针(二维i数组指针)。
Int (*p)[3] = a;
*(*(p+i)+j) 获取二维数组的每个元素。