1

第一章C语言结构

  1. C代码编译成可执行程序经过4步:
    (1)预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并 不会检查语法
    (2)编译:检查语法,将预处理后文件编译生成汇编文件
    (3)汇编:将汇编文件生成目标文件(二进制文件)
    (4)链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的 可执行程序中去
    首先编辑源文件.c文件编译生成一个.obj文件,再将生成的.obj 文件经过连接生成.exe文件,最后运行达到预期的结果。
    注意:obj和exe都是二进制文件,只有exe可以执行
  2. = 是赋值语句, == 是相等比较语句
  3. scanf 只能定义宽度,不能定义精度
  4. 标识符是由下划线、数字、字母组成。开头不能是数字,全是英文字母不可以是关键字 要注意关键字首字母是否大写,大写不再是关键字
    (do是关键字 define、main、printf、scanf、都不是关键字)
  5. 输出%d应该是%%d 输出\n应该是\n
  6. i++先用后加,++i先加后用(i为变量,不可以是常量)
    如果是++之后再进行输出n那么不管是先加还是后加都会加1
    如果是在输出是n++那么输出n本来的值,n+1;++n是直接加1
    在没有赋值的情况下可以直接i++赋值,但不可以++i
  7. c语言中运算对象必须是整型的运算符是%

第二章数据类型及其运算

  1. C语言的整形数据在内存中的存储形式是补码,字符型是ASCII码
    字符型是按照ASCII码形式存储,‘a+b’没有这个类型,可以是‘a'+‘b’,可以是5+7, 算出结果转换,也可以是‘\0’(‘\0’可以转换ASCII码)
  2. 小写字母-32=大写字母 大写字母+32=小写字母
    字符+‘0’=数字 数字-‘0’=字符
    ASCII码‘a’—‘z’97—122 ‘A’—‘Z’ 65—90
    ‘0’—‘9’ 48—57
  3. strlen()函数遇到\0就会停止
    sizeof()函数计算字符串长度(如果字符数组没有定义长度赋值时字符串会自动加上\0, 赋值是字符就是字符的个数)
  4. %左右都必须是整数,符号与左边变量保持一致
    /两边都是整形结果就是整形,有一边是小数结果就是小数
  5. 对于double类型,输入格式为scanf(“%lf %lf”, &A, &B);
    对于float类型,输入格式为scanf("%f %f, &A, &B);
    对于double类型和float类型,输出格式均为printf(“%f %f\n”, A, B);
  6. 常量是否正确
    1).e前e后必有数,e后必为整数
    2).整型常量就是整常数,10进制数、8进制数和16进制数三种。如:10、012、 0x0A
    3).实型常量也称为浮点型常量。如:3.14 、 1.2E-4
    1.浮点常量就是一种呈现有符号实数的十进制数字。有符号实数的呈现包括一个整数部分,一个小数部分,还有指数。可以使用浮点常量来呈现不可以被改变的浮点值。
    2.e前e后必有数,e后必为整数
    3.你既可以忽略十进制小数点(值的整数部分)前面的数字也可以忽略十进制小数点(小数部分)后面的数字,但是不可以同时忽略两者。只有在你包括了一个指数的时候,你才可以省去十进制小数点。不允许空白字符分隔数字或者常量字符。
    4.e后面是正数小数点右移,负数左移,是几就移动几位
    4).字符型常量必须用单引号括起来。如:'M' , '\n'
    5).字符串常量应用双引号括起来。如:"abc" , "a"
  7. 运算符优先级

1、最高级:出现同级别运算符时的结合方向是从左往右(下面级别没写结合顺序时,默认是从左往右)。
( )圆括号
[ ]下标运算符号
->指向结构体成员运算符
.结构体成员运算符

2、第二级:!、~、++、--、-、(类型)、、&、sizeof。
这一级都是单目运算符号,这一级的结合方向是从右向左。
比如出现
p++,这时和++同级别,先算右边,再左边。
所以
p++等价于(p++),而不是(p)++。

3、第三级:+、-、*、/、%
这一级都是算术运算符,结合顺序和数学学习中一致的,先乘除取余数,后加减。

4、第四级:<<、>>
这是左移、右移运算符,位运算时可能需要用到。

5、第五级:<、<=、>、>=、!=、==
这些运算符也称为关系运算符,其中<、<=、>、>=高于!=、==。

6、第六级:&、^、|
这三个符号也是位运算符号,其中内优先级,&>^>|。

7、第七级:&&、||
逻辑与&&优先级大于逻辑或||。

8、第八级:? :
也称为条件运算符号,是C语言中唯一的一个三目运算符,结合顺序是从右往左。

9、第九级:=、+=、-+、*=、/=、%=
这些运算符也叫做赋值运算符,除此之外,>>=、<<=、&=、^=、|=这些赋值运算符也在这一级别内,结合顺序是从右往左。

10、最低级:,
逗号运算符也称为顺序求值运算符,在C语言中,运算级别最低。

  1. 转义字符

ASCII码转换为十进制整数八进制转换十进制:例101=182+0*81+18^0(十六进制同理)
\ddd中是八进制,数字不可以大于等于8
\xdd中是十六进制,数字不可以大于等于16
9. 逗号运算符
自左至右,依次计算各表达式的值,“表达式n” 的值即为整个逗号表达式的值。 (记住,最后一个表达式的值才是整个逗号表达式的值。 )

例如,逗号表达式a = 3 * 5, a * 4的值是60, 先求解a = 3 * 5,得a=
15; 再求a * 4 = 60,【15*4=60】 所以逗号表达式的值是 60。
10. printf()函数输出格式(正左补空格,负右补空格)
在屏幕上输出没有进制标志

1)、%d输出十进制整数
%d 按照实际长度输出
%md 长度大于m实际长度输出,小于m左端补空格
%-md 长度大于m实际长度输出,小于m右端补空格
%ld 长整型数据
整形都有长整形都可以在前面加l,数字表示宽度,正数左补空格,负数右补空格
2)、%o-以八进制形式输出无符号整数(不输出前缀O);
3)、%x-以十六进制形式输出无符号整数(不输出前缀OX);
4)、%u-以十进制形式输出无符号整数;(十进制unsigned整数)
5)、%c输出一个字符
6)、%s输出一个字符串
%s字符串实际长度输出
%ms长度大于m实际长度输出,小于m左端补空格
%-ms长度大于m实际长度输出,小于m右端补空格
%m.ns占m列,取左端n个字符,从右端输出,左补空格
%-m.ns占m列,取左端n个字符,从左端输出,右补空格(n>m,输出n个字符)
7)、%f输出实数,小数形式输出
%f整数全部输出,小数输出6位
%m.nf占m列,n个小数位,右侧输出,左补空格
%-m.nf占m列,n个小数位,左侧输出,右补空格(m<(整数位+n)),正常输 出,小数n位
8)、%e指数形式输出实数
%e共13位,小数6位,指数部分5位

%m.ne占m列,n为小数位,右侧输出,左补空格
%-m.ne占m列,n个小数位,左侧输出,右补空格(m<(整数位+n)),正常输 出,小数n位
%me没有指定小数位,6位小数

9)、%g输出实数(f或e格式) 不输出小数点后无意义的0

posted @ 2024-01-19 10:15  蒙头就是学  阅读(31)  评论(0)    收藏  举报