- 博客(21)
- 资源 (2)
- 收藏
- 关注
原创 C语言复习--#和##
#操作符作用于预处理期将宏参数转换为字符串。转换作用是在预处理期完成的,因此只有在宏定义中才有效。编译器不知道#的转换作用。比如#define STRING(x) #xprintf("%s\n",STRING(Hello world);##运算符是将两个符号粘连在一起。同样是预处理期完成的因此在宏定义中有效。#define NAME(n) name##n int NAME(...
2018-08-16 20:08:04
620
原创 C语言复习--内存对齐
#pragma pack(n) //内存对齐的指定方式内存对齐就是不同类型的数据在内存中按照一定的规则排列。而不一定是顺序的一个接一个的排列。比如struct Test1{char c1;short s1;char c2;int i;};struct Test2{char c1;char c2;short s1;int i;};他...
2018-08-15 20:44:12
294
原创 C语言--宏定义与分析
C语言用#define 来定义宏。我们可以用宏来定义宏常量。宏常量的本质是字面量,字面量是不占用内存的。宏是没有语法检查的,语法错误只能被编译器检测。宏是由预处理器处理的。在预处理处理期间,只是进行简单的文本替换,所以会出现一些副作用比如参数是不会进行计算的。另外#define表达式的使用类似函数表达式。#define表达式可以比函数更强大,但也比函数更容易出错。比如: #define...
2018-08-07 21:58:45
527
原创 C语言复习三目运算符和逗号表达式
三目运算符a ?b:c a 为真,返回b,为假返回c,有点像if else 语句。同时 三目运算符可以嵌套比如a ?b:c?d:e;另外在c语言中这表达式返回的是一个右值,所以不能放在=左边。如:a ?b:c = 3;//错误。而在c++中则是当b和c为左值或能转换为同类左值时,运算结果就为左值。否则就为右值。a ?b:c = 3 //b和c都为左值时是正确的,不是则是错...
2018-08-06 21:51:12
431
原创 c复习--++ 与-- 操作
前置++ --先变量自增(减)1,取变量值;后置++ --取变量值,再变量自增(减)1;问题int i = 0;(i++) + (i++) + (i++)//猜测结果0+1+2 = 3(++i) + (++i) + (++i)//猜测结果4+5+6=15这两个表达式值是多少? int i = 0; int r = 0; r = (...
2018-08-06 21:05:45
233
原创 c语言复习--位运算符
C语言的位运算符有~(取反)&(与运算) ^(异或运算) |(或运算) <<(左移) >> (右移),优先级 又高到低 排列为 ~ << >>(左移右移同级) & ^ | 。其中左移和右移的左操作数只能是整型比如char int 之类的,其中char 和 short 会被提升为 int 型,右操作数的范...
2018-08-01 22:58:05
215
原创 C语言复习--逻辑运算符|| 和&&,!
&& 只有两个条件都为真时,才为真。||只要一个为真,就为真。逻辑运算符很重要的法则是短路法则。逻辑运算符的运算顺序都是从左到右计算。&& 当左侧条件为假时,就不计算右侧。|| 都左侧条件为真时,就不计算右侧。另外&& 的优先级要高于||。1. int i=0,j=1,k=0;k= ++i || j++; k=...
2018-07-16 21:04:43
25035
1
原创 c语言复习--单引号和双引号
C语言中单引号表示字符字面量,双引号表示字符串字面量。'a'表示字符字面量。在内存占用一个字节。'a'+1表示'a'的asii码+1得到b。"a"字符串字面量,在内存占用两个字节。"a"+1表示指针运算指向'\n'。双引号,系统会自动在末尾加一个'\n'。 char *a = 1;char *p ='1';char *p = "1";char c = "stri...
2018-07-16 20:28:41
1895
原创 C语言复习--接续符和转义字符
C语言中\即是接续符也是转义字符。思考下面程序这个程序是对的吗?这个程序是没毛病的。编译器将反斜杠去除,然后把反斜杠后面的和下面那一行原封不动的接上来。所以在接续单词的时候下一行不能有空格,反斜杠后面也不能有空格。接续符一般在定义宏代码的时候用代码如下#define SWAP(a,b) \{ ...
2018-07-16 19:55:48
613
原创 c语言复习--注释符
注释符有两种:// 和/*.....*/编译器在编译过程中会用空格代替注释内容。字符串字面量中// 和/* */不代表注释符/*.....*/不能被嵌套注释的要点:1.注释是用来阐述原因和意图,不是用来描述程序运行过程2.注释要无二义性,避免缩写。3.注释不要喧宾夺主学习交流群学习交流群199546072...
2018-07-16 19:20:10
1044
原创 c复习--emun sizeof() typedef
enum (枚举类型 )它将一组整型常量组织在一起使C语言拥有真正的常量;语法规规则除了成员变量的定义和struct不一样外,其他都一样enum color(枚举名,可不写,就是匿名枚举类型){ green,//注意这是逗号,不是分号 red=10, blue, };enum的性质1.enum可以根据需要定义自定义的整型值2.第一个定义的e...
2018-07-14 22:50:58
362
原创 c复习--struct和union
C语言的struct可以看做变量的结合;struct的语法规则: struct TS(结构体名)(此处的结构体名可以不写,这个结构体就叫匿名结构体) {//成员列表}; 定义变量的两种形式1在struct TS t1;2在struct声明处struct TS ...
2018-07-14 20:04:23
243
原创 C语言复习--循环语句
循环语句又称迭代语句。主要有两种:一种为for,一种为while语句;它重复执行操作直到满足某种条件才停下来;while和for语句在执行循环体之前检查条件。do while语句先执行循环体,再检查条件(这种循环必须会被执行一次)。for语句: 语法规则for(initializer;condition;exception){ statement }。一般情况下initializer负责初始化一...
2018-07-11 20:37:02
395
原创 C语言复习--分支语句
C语言分支语句(条件语句)有两种。一种是if语句,他根据条件决定控制流,一种是switch语句,它计算一个整型表达式的值,然后根据这个值从几条执行语句中选择一条执行。if语句有两种形式:一种含有else分支,一种没有;语法如下:if(condition){statement} 另一种:if(condition){statement} else {statement}或嵌套if语句:els...
2018-07-10 21:23:33
468
原创 C语言复习5--变量属性
在c语言中,变量也是有自己的属性的。C语言为变量提供了4种属性;存储说明符auto,register,extern,static说明的四种存储类别。四种存储类别说明符有两种存储期:自动存储期和静态存储期。其中auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块是被建立,它在该程序块活动时存在,退出该程序块时撤销。在函数内部定义的变量成为局部变量。在某些C语言教材中...
2018-07-09 20:45:55
256
原创 c语言复习4--类型转换
在c语言中不同类型的数据是可以进行转换的,比如char能转换为int类型。C语言的类型转换分两种:1.强制类型转换。2.隐式类型转换。强制类型转换的语法:(type)var_name;(type)value;强制类型转换的结果:1,目标类型能容纳该类型值,则结果不变;2,目标类型不能容纳该类型值,则结果发生截断。;代码如下//强制类型转换,能容纳,结果不变 char c = 10; int i =...
2018-07-09 19:27:45
198
原创 c复习3 浮点数的秘密
c语言中浮点数有两种类型:float,double。他们在计算机内部的表示法相同,只有占用内存大小不同。float占4个字节,double占8个字节,所以表示的精度也不同。浮点数在内存里表示法为符号位,指数,尾数(小数部分)浮点数的小数位在内存里用2的负次幂表示,1.能用有限位数表示的数(0.5,0.25,...的和得数)比如10进制0.75 = 二进制 0.11 因为0.75是0.5和0.25...
2018-07-07 20:47:44
196
原创 c语言复习2之有符号与无符号
在学习c语言的过程中,我们经常遇到unsigned int(这里只能为整型) 或signed ,这样的类型说明符,他们就是无符号与有符号的类型说明符。有符号就是可以表示负数,而无符号只能表示正数。那么在c语言中怎么区分这些的呢?在有符号数中如int ,4个字节,32位,他就用最高位的0,1来表示正负号,0表示正号,1表示负号。char c=-15;short s=15;int i=-15;sig...
2018-06-21 09:56:01
342
原创 c语言复习第一节基本数据类型
基本数据类型包括字符型,整型,浮点型,其中字符型和整型又被统称为整数类数据类型。字符型:char 型 signed char型 unsigned char 型整型:signed short int 型 , unsigned short int 型 signed int 型, unsigned int 型,signed long int型unsigned long int 型浮点型: floa...
2018-06-17 19:16:44
212
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人