C语言期末复习-(知识点大总结)

最近要期末了,要考c语言了,在复习过程中顺便把我认为易错的写出来,所以知识点可能不会包含的很全面,都是些我自我感觉容易错的哈哈,这部分先写下基本的知识点


  • 读程序都从main函数入口,然后从上往下执行,(遇到循环执行循环,遇到函数再跳到函数执行),有且只有一个main函数
  • c语言程序是由一个或多个函数组成
  • .c -> .obj -> .exe ,  编译->链接->运行
  • 合法的标识符-数字、字母、下划线(记死),其中数字不能写在第一个
  • c语言只有八进制、十进制、十六进制,无二进制,但是运行时会转化为二进制
  • 算法可以没有输入,但一定要有输出
  • 八进制0开头,   十六进制0x开头
  • 2.1e-1 = 2.1*10-1次方 ,口诀:e前e后必有数,e后必为整数
  • 关于’ / ‘ ,3/2=1,  但是3/2.0=1.5   ’/‘会根据两边的类型来得出结果
  • int a =2;a*=2+3;结果a=10,运行时会先计算2+3
  • a++先用再加,++a先加再用
  • a =(2,3,4)的值为4,结果是最右边表达式的数值
  • 赋值运算符(=)左边必定是变量,不能是表达式
  • ’A'是字符,占一个字节,“A”是字符串,占两个字节
  • 字符可以进行算数运算,例如‘0’-0=48,‘A’+32=‘a’(大小写一般相差32)
  • 转义字符:1.一般转义字符:‘\n','\0','\'','\\' ,'\t' 2.八进制转义字符:’\xxx',ag:'\142',(\后面最多为三位), 3.十六进制转义字符:'\xoo',   ag:'\x4d'
  • %o八进制 %#o 带前导的八进制(ag:第一个11 第二个011)
  • %x十六进制 %#x 带前导的十六进制(ag:第一个11 第二个0x11)
  • printf("%2d",123)结果为123,printf(”%5d“,123)结果为  123前面两个空格,%xd中x表示整个数要有几位
  • pritnf(”%3.1“,2.16)结果为2.2,小数点算一位,.1表示小数后面一位
  • 非0表示真,0表示假
  • 2<1<4,结果是对的,2<1得到0(假的),0<4,所以结果为真
  • 优先级别 !> && > ||
  • &&的短路,int a=0;b=2;(a&&b++),结果b不会被加一,因为a已经判断是假的了,所以不会执行后面的语句
  • switch(表达式),表达式只能是整型或字符串
  • switch语句有break和没有break的区别,没有break则只要有一个case匹配其他的都要执行(包括default)
  • *p++  取当前值,再移动地址
  • 数组个数一定是常量而不是变量,int a[5],int a[1+2]都i是合法的,而int x=1;int a[x]是非法的
  • 对所有元素都赋初值后,二维数组的行数可以省略,例如int arr[][2]={1,2,3,4,5,6}
  • int a[10],a是第一个元素的地址,即a[0], a是常量指针,因此不可以进行加减和自增运算,但是指针型常量经常会用来加减,是可以的,所以就是不能进行自增减而已,例如a++是非法的,(a+1)是合法的,代表首地址后移一位
  • a和&a,int a[10],a和&a的值是一样的,但是代表的含义不一样,a代表数组首元素的地址,&a代表数组的地址, 所以a+1是代表数组第二个元素,地址会往后移动4个字节(int为4个字节),而&a+1是代表第二个数组,地址会往后移动 元素个数*4 个字节,是跳过数组所有元素
  • int a[2][2], a+1代表跳一行,a[0]代表第1行元素,a[0]+1代表跳一列,是第一行第二个元素
  • a[2]=*(a+2),  a[2][1]=*(a[2]+1),  a[1][1]=*(*(a+1)+1),int a[][2]=int (*a)[2](作为函数形参时要用这两种形式)
  • puts会输出字符串’\0'前的所有字符,并自动换行
  • sizeof和strlen的区别,sizeof计算的是占用空间的大小,而strlen计算的是字符的个数
  • strlen是计算字符串从开始到‘\0'之前的所有,不包括’\0',(字符串中是自带'\0'的,只是没有显示出来),所以如果char str[]={"abc\0df},结果是3个
  • 对字符串操作记得要用那几个函数,strcmp(比较大小),strcpy(a,b)(将b内容拷贝到a),strcat(拼接两个字符串,接到‘\0'后面)
  • 下面是c语言的运算符优先级

    优先级 运算符 结合性
    1、() [] -> . (从左到右)
    2、 ! +(正) -(负) ~ ++ -- (从右向左)
    3、 * / % (从左向右)
    4、 +(加) -(减) (从左向右)
    5、 << >> >>> (从左向右)
    6、 < <= > >= (从左向右)
    7、 == != (从左向右)
    8、 &(按位与) (从左向右)
    9、 ^ (从左向右)
    10、 | (从左向右)
    11、 && (从左向右)
    12、 || (从左向右)
    13、 ?: (从右向左)
    14、 = += -= *= /= %= &= |= ^= ~= <<= >>= >>> (从右向左)


     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值