C语言基础知识*重点摘要

1 stdio.h

包含编译器在编译标准输出函数printf时要用的信息和声明

包含帮助编译器确定对库函数调用的编写是否正确的信息

若仅用到scanf和printf 可省略该行

2 int

说明后面标识符xyz sum是整型变量

C语言规定 程序中所有使用的变量都必须先定义后使用

3 & 取地址符

将整数值输入到变量(x...)的地址所标志的单元中,即输入给x..

4 %d 格式控制字符串

用来指定输入/输出时的类型和格式 表示十进制整数类型

5 一个c程序是由一个固定名称为main的主函数和若干个其他函数(可没有)组成

6 函数说明:对函数名 函数类型和形式参数等的定义和说明

  函数体:(1)局部变量说明 (2)执行语句组  *由一对花括号括起

7 对所有数据都要先指定其数据结构

8 八进制整数

以0为前缀,其后为0~7

E.g.  015(13) 0101(65)

9 十六进制整数

以0x或0X组成 其后为0~9和a~f(A~F)----表示10~15

E.g. 0X1f(31)  0xFF(255)  0x201(513)

10 实型常量  C语言中 实数又称为浮点数

  1. 十进制小数形式  1.2  .24  2.  0.0
  2. 指数形式

   组成:十进制数、阶码标志e或E、阶码(只能是整数)

   注意:e/E前必须有数字,后面必须是小数

E.g.  123.456——123.456e0、12.3456e1、1.23456e2(标准化指数形式)......

11 符号常量  

C语言中 用一个标识符表示一个常量;使用之前必须定义

  1. 宏定义 #define

定义:C语言源程序中用一个标识符(宏名)来表示一个字符串(宏替换/宏展开)

a.不带参数的宏定义

形式:#define 标识符(一般大写字母) 字符串(常量 表达式 格式串)

   *Define是一条预处理命令 将命令格式中的标识符定义为后面的常量值

//计算圆的面积周长体积 #define PI 3.14

//计算多项式的值 #define P (3*x*x-*x-1)

//格式为字符串 #define FORMAT %f,%f,%f,%f“

*双引号括起的字符 不进行宏展开

*可嵌套 如 #define PI 3.14

           #define S PI*r*r

*终止其作用域 使用#undef PI

b.带参数的宏定义

形式:#define 宏名(形参表) 字符串

#define PI 3.1415926

#define S(r) PI*r)*r

*先用实参代替形参,之后出现的所有宏名都用宏定义处理过的字符串替换

  1. 条件编译

12 字符型常量

  1. 字符常量(字符常数)
  1. 用单引号括起 起界定作用 ‘’内只能有一个字符 且不能为‘  \
  2. 每个字符常量都对应一个整数值(ASCII码对照表)
  3. 区分大小写

*转义字符多用于printf()函数,在scanf()中通常不使用

  1. 字符串常量
  1. 有一对双引号括起来的字符串序列  “a”“china”“123.0”
  2. 存储方式:每个字符以ASCII码值的二进制形式存放在内存中 系统在末尾加一个字符串结束标志\0     “a”的实际长度为2

13 变量  字节*

  1. 变量名:用标识符表示  *数字、字母、下划线  且第一个字符必须为字母/下划线
  2. 变量类型   原则:先定义后使用
  1. 整型变量
  1. 可使用十进制 八进制 十六进制的数据 在内存中都以二进制形式存放
  2. 基本类型说明符 int2 此外还有short int/short2  long int/long4
  1. 实型变量
  1. 分类:单精度实型(float4)双精度实型(double8
  1. 字符型变量
  1. 用来存储字符常量
  2. 类型名:char 1   e.g. char c1=‘a’,c2;

//定义两个字符型变量c1 c2 并将字符常量‘a’赋给字符型变量c1

  1. 存储:将一个字符放到一个字符型变量中 将该字符的ASCII码存放在该变量的内存单元中
  1. 变量值 1)赋值语句 int a;a=2;   2)初始化  int a=2;
  1. C运算符
  1. 分类

优先级:单目运算符>双目运算符

结合性:a.从左到右 称为左结合性  b.从右到左 称为右结合性

*详见附录3

  1. 算术运算符  + - (正负)+ - * / %  ++(自增) --(自减)

   除法运算:两个操作数都是整数 结果为整数,小数部分一律舍去

             F=3/5  结果为000000   f=3.0/5.0  结果为0.600000

   自增、自减运算符:a.前缀形式 先加1后运算   ++k  --k

                   后缀形式 先运算后加1    k++  k--

  1. 只能用于变量 不能用于常量 表达式
  2. 结合方向:自右向左

-(k++)  k=3   则最终表达式的值为-3  k=4

  1. 赋值运算符 = :将一个数据/表达式赋给一个变量 结合性从右到左

a=x%y  作用是将右边的结果赋给变量a

     赋值表达式:变量=表达式

     类型转换:若=两边数据类型不一致,赋值时要进行数据转换,以=左边的变量为准

     复合的赋值运算符 += -= *= /= %= <= >= &= ^= |=

     a+=3---a=a+3   a*=a+3---a=a*(a+3)

  1. 关系运算符(比较两个操作数大小关系)

  关系表达式:其结果的逻辑值为0或1

  1. 两个运算对象满足给定关系,取真值1;否则取假值0
  2. 两个运算对象可以是算术表达式  

*若为字符数据 则按ASCII码值比较

  1. 其值可作为整数值参与运算

int a=10,b=9,c=1,f;f=a>b>c; 则f=0

*a>b结果为1,1>c结果为0+

   

  1. 逻辑运算符:逻辑与&&   逻辑或||   逻辑非!(自右向左)            

   *优先级:逻辑非>逻辑与>逻辑或

   !a  若a为真,则结果为假(0),若a为假,则结果为真(1)

  逻辑运算的结果:逻辑真(1) 逻辑假(0){只能为0或1,无其他数值}

  判断逻辑运算对象的逻辑值:0为假,非0为真

eg.15&&13  15||13---15 13非零 即运算对象作为真,所以两个式子结果值均为1

*求解过程中,有解则停止执行

  1. 条件运算符:由? :组成  (三目运算符 从右向左)

   一般格式:表达式1?表达式2:表达式3

   *先计算表达式1,若为真,则求解表达式2,表达式2的值作为整个条件表达式的值;否则,为表达式3

   优先级:仅比赋值运算符和逗号运算符高

  1. 逗号运算符:“,”

   一般形式:表达式1,表达式2,表达式3,……,表达式n

   求解过程:依次求解表达式1,2...n,整个逗号表达式的值为表达式n的值

   优先级:最低

   Printf(%d,%d,%d,(a,b,c),b,c)  其中(a,b,c)为逗号表达式 值为c

附加——源码补码反码

1.机器数:一个数在计算机的存储形式是二进制数,我们称这些二进制数为机器数,机器数是有符号,在计算机中用机器数的最高位存放符号位,0表示正数,1表示负数。

2.机器数的真值:带符号的机器数真正表示的值。

  例如:机器数1000 0111  真值为-7 形式值为135

3.源码:表示方法与机器数的真值一样,第一位表示符号,其余位表示数值

  例如 +1:0000 0001   -1:1000 0001

4.反码:正数是源码本身;负数在符号位不变的前提下,其余位取反

例如 +1:0000 0001   -1:1111 1110

5.补码:正数是源码本身;负数在反码的基础上加1

  例如 +1:0000 0001   -1:1111 1111

  1. 位运算:对运算对象按二进制位进行操作的运算,可以完成对内存中的数据进行直接操作

           对象只能为整型数据/字符型,运算结果为整型

   位运算符

  1. & 按位与

   运算规则:0&0=0  0&1=0  1&0=0   1&1=1  参与运算的两个数均以补码形式出现

  1. |  按位或

   运算规则:0|0=0  0|1=1  1|0=1  1|1=1    参与运算的两个数均以补码形式出现

   *通常用来将某些位置转为1

  1. ^  按位异或  (相等为0 不等为1 )

   运算规则:0^0=0  0^1=1  1^0=1  1^1=0    参与运算的两个数均以补码形式出现

   *通常用来使特定位置翻转或保留原值

  

  1. ~   按位取反

   运算规则:!0=1  ~1=0

  1. <<  左移

   运算规则:将操作对象各二进制位全部左移指定位数

高位丢弃,低位补0  每左移一位,相当*2

   6)>>  右移

   运算规则:将操作对象各二进制位全部右移指定位数  符号位一起移动

   低位丢弃  高位:正数补0 负数补1  右移一位,相当/2,并去掉小数

9.强制类型转换:将一个表达式转化成所需类型

 例如: (double)a   将a的值转换成double类型

         (int)(x+y)  *表达式应用括号括起来

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值