首页 > 代码库 > C语言必掌握知识点

C语言必掌握知识点

个人总结,学c的赶快看


1….++a 和 a++ 的区别:

          ++a  先加在赋值  a++ 先赋值在加  后者赋给变量b的值为a而不是a+1后的值

2….按位与  同为1时为1,其他为0     如:  1110 & 1010 =1010
     按位或 同为0时为0,其他为1     如:1110 | 1010 =1110

3….  ~:非运算  按位取反  如: ~1111  =  0000

4…. 按位异或  相同位数字不同为1  相同为0  如:1010  ^ 0110 =110
 左移一位相当于成乘上2
 
5….条件为一个范围时 (表达式  与、或 表达式)
          scanf时,变量前加&符号   switch里面为表达式,case后为冒号;碰到break终止  continue 只结束本次循环

6…. 条件运算符 ?    a>b ? a:b   真为前者 假为后者

7….求两个数的最大公约数和最小公倍数
    用欧几里德算法(辗转相除法)求两个数的最大公约数的步骤如下:
先用大的一个数除以小的一个数,得第一个余数;
再用小的一个数除以第一个余数,得第二个余数;又用第一个余数除以第二个余数,得第三个余数;这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。
例如求1515和600的最大公约数,
第一次:用1515除以600,商2余315;
第二次:用600除以315,商1余285;
第三次:用315除以285,商1余30;
第四次:用285除以30,商9余15;
第五次:用30除以15,商2余0。
1515和600的最大公约数是15。

两个正整数的最小公倍数=两个数的乘积÷两个数的最大公约数

8…产生随机数
arr[i]=10+rand()%90  表示产生10到100的随机数

9….所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数

本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

10…字符串不知道长度的时候  for ( ; arr[i] ;)

11….定义一个20个元素的数组,要求范围在x=30--y=70之间(用随机数)  如:循环体内: a[i] = arc4random()%41+30     ---------------->      arc4random()%(y-x+1)+x

12…冒泡排序 // n个元素 比较n-1趟 

13…..字符在数组中的应用
strlen()  长度
strcpy()  拷贝
strcat()   拼接
strcmp()   比较  //目的串  源串


 char str[] = {‘o‘,‘k‘}
 char str[] = "ok"  
区别:
第二个隐含一个结束符 ‘ \0 ‘

14..//字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素

    

    char str[10]={‘I‘,‘‘,‘a‘,‘m‘,‘h‘,‘a‘,‘p‘,‘p‘,‘y‘}; 


15…

//只要不遇到回车,就一直取输入的字符

    char a = 0;

    while ((a = getchar()) != ‘\n‘) {

        printf("a = %c\n", a);

    }