C语言复习笔记

整理了一下C(谭浩强版)的笔记,笔记中只有博主自己觉得重要和已经忘记的内容~

  1. 机器语言(machine language):机器指令(machine instruction计算机能够直接识别和接受的二进制代码)的集合。

  2. 对于过程化程序来说,程序=算法+数据结构。

  3. 算法的特性:1.有穷性 2.确定性 3.有零个或多个输入 4.由一个或多个输出 5.有效性

  4. C标准并没有具体规定各种类型数据所占用存储单元的长度,只是要求long的数据长度不短于int,short不长于int。它是由编译系统自行决定的(Turbo C中int、short16位,而long32位;VC++中short16位,而int、long32位)。通常做法:short16位,long32位,int由编译系统决定。

  5. int(32位)取值范围:-231 ~(231 -1);unsigned int取值范围:0 ~(232 -1)

  6. 自增:变量在运算符的前面,就是先使用变量;变量在运算符的后面,就是后使用变量

    i++;//先使用i,再把i的值加一。
    ++i;//先把i的值加一,再使用i
    
  7. 算术运算符自左至右(左结合性),赋值运算符自右向左(右结合性)。

  8. ‘A’:65,‘a’:97。字符数据以ASCII码存储在内存中,形式与整数的存储形式相同,所以字符型数据和其他算术型数据可以互相赋值和运算。

  9. 强制数据类型转换:(类型名)(表达式)

    • 浮点数强制转成整型:舍弃小数部分(正负数均可)(先转换后赋值)
    • 整型强制转成浮点数:数值不变,以浮点数的形式存储到变量中(先转换后赋值)
    • 占字节多的整型强制转成占字节少的整型:直接截断(只传送低字节)
    (int)x%3;//先对x进行强转,再%3
    (int)(x%3);//对(x%3)的值进行强转
    
  10. C语句的分类:

    • 控制语句

      if(x>y) 
          z = x;
      else 
          z = y;
      
    • 函数调用语句

      printf("function diaoyong");
      
    • 表达式语句

      i = i+3;
      x+y;//合法但是没有实际意义。
      
    • 空语句

      ;
      
    • 复合语句(也叫语句块)

      {
          int a = 3, b = 2, c;
          c = a + b;
      	printf("c = %d\n",c);
      }
      
  11. 二目运算符可以和赋值符一起组合成复合赋值符。

    i += 3;//i=i+3
    j -= i+1;//j=j-(i+1)
    k *= 4;//k=k*4
    m /= 5;//m=m/5;
    n %= 6;//n=n%6;
    
  12. 所谓输入输出是以计算机为主体而言的

    1. 输出:从计算机向输出设备(显示器、打印机)输出数据
    2. 输入:从输入设备(键盘、光盘、扫描仪)向计算机输入数据
  13. printf 和 scanf 不是C语言的关键字,只是库函数的名字,stdio.h 头文件中包括了与标准 I / O库有关的变量定义和宏定义以及对函数的声明。

  14. #include <stdio.h>//<>:系统库函数
    #include “file1.h”//"":自己写的文件而且在当前目录
    #include "C:\temp\file2.h"//"文件路径":自己编写的文件而且不在当前目录
    
double a = 1.0;
float b = 2.0;
printf("%lf",a/3);//0.333333333333333double有效数字15位
printf("%f",a/3);//0.333333只输出6位

printf("%f,b/3");//0.666667float有效数字6位
```

  1. scanf 输入%c字符时,空格和转义字符都是有效输入(tab、回车也是)

    scanf("%c%c%c",&c1,&c2,&c3);//输入a b回车c是错的,输入abc才是对的
    
  2. scanf 输入数值数据时,如果输入空格、回车、tab或非法数值(不属于数值的字符)都直接认为数据结束。

  3. putchar()只输出字符,c可以是字符常量、字符变量、整型常量或整型变量(其值在字符的ASCII码范围内)

    putchar('\101');//A
    putchar(65);//A
    putchar('\o15');//13
    
  4. getchar()也会读入空格、换行和tab

  5. !优先于 关系运算符 优先于 && 优先于 ||

  6. switch语句一般形式:

    switch(表达式){
        //常量1,2,3,4互不相同
        case 常量1:语句1;break;//表达式的值=常量1,执行语句1,结束
        case 常量2:
        case 常量3:语句2;//表达式的值=常量2或者3,执行语句2,不结束连续输出,并且不进行判断
        case 常量4:语句3;break;
            //表达式的值=常量2或者3,执行语句2和3
            //表达式的值=常量4,执行语句3
        default:语句4;//否则,执行语句4
    }
    

    数组、指针、结构体、枚举、共用体先空着~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值