二维数组
指针:一定要知道指针的指向
指针的运算:注意移动字节数的问题
指针与数组的关系
指针数组:int pb[4];
数组指针:int(pa)[4];
二级指针
=========================================================
冒泡排序
int arr[5]={11,45,2,66,34};
参加数据个数 比较次数
5 4 -------------------->arr[4]
arr[0] arr[1] -----------> arr[1]
arr[1] arr[2] ----------->arr[2]
arr[2] arr[3] ----------->arr[3]
arr[3] arr[4] ----------->arr[4]
第二次
4 3 -------------------->arr[3]
arr[0] arr[1]-----------> arr[1]
arr[1] arr[2]-----------> arr[2]
arr[2] arr[3]-----------> arr[3]
第三轮
3 2-------------------->arr[2]
arr[0] arr[1]-----------> arr[1]
arr[1] arr[2]-----------> arr[2]
第四轮
2 1-------------------->arr[1]
arr[0] arr[1]-----------> arr[1]
获取随机数
//获取0~100
srand(time(0));//此语言不能放在循环中,否则产生的随机数相同
int num= rand()%100
字符串
(1)字符串常量
字符串是由双引号括起来的字符序列集合,
“a” “hhh” “143432#$%”
字符串的结束标志:‘\0’ 其不显示但是存在
()2 C中没有字符串所对应的数据类型,通常使用字符数组保存字符串;
char arr[32]={"hello, uuhhio"};
char arr[32]=" content " ;
char af[7]={'' ,'' ,'' ,''}
char =
注意:字符串放进数组要多占一位
(3)字符串的输入和输出
scanf遇到空格,当作字符串输入结束 *字符串类型
但是单个空格可以输进去 *字符类型
(4)gets/puts
gets(): 从键盘键入
此函数有bug,不建议使用
puts():输出字符串
自动换行,无需换行符
(5)fgets()/fputs()
fgets(): 获得数据
arr:数组名,即一个地址
stdin:标准输入
sizeof(arr):读取数据的大小,也可以直接用数字代替
fputs(): 输出数据
arr:要输出的字符串
stdout:标准输出
(6)指针和字符串
(7)字符串相关函数
头文件:#include<string.h>
strlen():计算字符串长度 \0不计入 字符串占用的位置 sizeof是计算整个字符串被分配的大小。
strcpy():字符串拷贝
strcmp():字符串的比较 strcmp(arr1,arr2) 比较每一个字符的ascii码 依次按字母的大小比较,比出大小就停
abd>abcd abc<abcd
strcat():字符串的拼接
stract(arr,buf);
将buf的内容,拼接到arr中,一定要保证arr足够大。
自己写代码实现strcmp(), strcpy(), strcat()函数
不可使用原函数