C语言复习知识汇总(一之数组)

C复习-基础篇(数组)

文章为博主复习中认为易忘、使用频率高、重要的知识,欢迎各位发现问题、提出纠正

  1. 数组的名字就是一个地址,scanf时不需要加&(取地址符)

char a[10]–>scanf("%s", a)

  1. 算法五大性质:有穷性,确定性,有效性、0个或多个输入、1个或多个输出
  2. 在“&&”表达式中,如果左端的计算结果为0,则右端不再计算;在“||”表达式中,如果左端的计算结果为1,则右端不再计算
  3. 优先级顺序:初单算位关,位逻条赋逗(读者要分清这些代表什么)
  4. 数学上证明,如果整数m不能被2~根号m之间的数整除,那么m就是素数

m = sqrt(m) * sqrt(m),如果m含有一个大于根号m、小于m的约数a,则m必含有一个大于1,小于根号m的约数b,使得m = a*b。所以如果一个数m从2到根号m之间没有约数,则必然在根号m到m-1之间没有约数,即n是素数

  1. do-while语句中循环体至少执行一次,while(条件表达式)后必须加分号
  2. 定义数组时,方括号中的数组长度只能为常量表达式,不能为变量(不同编译器可能不同
  3. 对于整型或实型数组,只能逐个引用数组元素,不能一次调用整个数组
  4. 数组初始化是指:在定义数组的同时对数组元素赋初值。数组在定义时不进行初始化,则数组中各元素的初值是随机的。当初值个数小于数组长度时,将只给前面的数组元素赋初值,后面的元素自动赋默认值,数值型赋数字0,字符型赋空字符’\0’。如:

int a[3]={1},则实际为a[0] = 1,a[1] = 0,a[2] = 0
定义时可以省略元素个数,如int a[]={1,2,3}

  1. 二维数组在内存中占有连续的存储空间,并且是按行排列的。二维数组的初始化方法分为分行赋值和顺序赋初值两种
  2. 在定义二维数组时,如果进行了初始化,则可以省略第一维长度,系统会自动根据初值的个数推算出第一维的大小,但第二维的长度不能省略。如:

int a[][3]={1,2,3,4,5,6,7,8,9}等价于int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}
int b[][3]={{1,2,3,},{},{7,8}}等价于int b[3][3]={{1,2,3},{0,0,0},{7,8,0}}两个例子皆合法

  1. 系统会在字符串常量的末尾自动加上字符串结束标志(’\0’),如’A’表示一个字符A,"A"表示一个字符串,由字符’A’和字符串结束标志’\0’构成
  2. strlen()函数读取字符串长度,到第一个’\0’为止,然后返回计数器计数器长度,长度不包含’\0’;
  3. 字符数组可以初始化,但不能用赋值语句将字符串直接赋给数组,如:

char a[10];
a[10]=“abc”,这是不合法的

  1. 字符数组必须以字符串结束标志’\0’结束,才能采用字符串输出函数进行输出。–>b[j] = ‘\0’; puts(b);
  2. string.h头文件包含strlen(str1)、strcpy(str1,str2)、strcat(str1,str2)、strcmp(str1,str2)等常用函数

strlen(str1):求字符串str1的长度,返回不包括串结束符’\0’在内的字符个数
strcat(str1,str2):将字符串str2连接到字符数组str1的后面,返回str1
strcpy(str1,str2):将字符串str2复制到字符数组str1中,返回str1
strcmp(str1,str2):如果str1>str2,返回正数;str1==str2,则返回0;str1<str2,则返回负数

  1. 冒泡排序:相邻两个互相比较,并交换数值,每次都是第一个开始,第一层循环为n-1次,第二层循环为n-i次,i为第一层的变量
  2. 顺序排序:第一个与后面的比较,交换数值,第一轮结束后第一个为最大或最小,第二轮为第二个与后面的比较
  3. 选择排序:选出最大或最小的数,记住下标,然后第一轮结束时,和下标对应对应元素交换数值。第二轮为第二个和后面的比较

上面三种排序算法,重在理解,死记容易记混

  • 希望读者们能快速掌握C语言,争做白富美(高富帅)!

博主编辑不易,点个赞再走吧!!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值