排序:
默认
按更新时间
按访问量

【C深入】指针基础

#include <stdio.h>int main(){       int i = 5;    int* p = &i;     printf("%d, %08X\n", i, p);   ...

2018-07-06 17:05:30

阅读数:23

评论数:0

【C深入】22_#pragma使用分析【重点】

#pragma是编译器指示字,用于指示编译器完成一些特定的动作#pragma所定义的很多指示字是编译器和操作系统特有的#pragma在不同的编译器间是不可移植的预处理器将忽略它不认识的#pragma指令,当预处理器看到#pragma后,就不会像处理#define,#include那样来进行进一步的...

2018-07-06 17:05:26

阅读数:21

评论数:0

【C深入】数组基础

编译器只给这20字节空间取了一个名字a,数组的每一个元素都没有名字。数组大小:数组在一片连续的内存空间中存储元素数组元素的个数可以显示或隐式指定int a[5] = {1,2};  //显示数组大小sizeof(a) = 20,  数组长度 sizeof(a)/sizeof(*a) = 5 ,指定...

2018-07-06 17:05:19

阅读数:18

评论数:0

【C深入】20_宏定义与使用分析

宏定义常量:#define宏定义常量可以出现在代码的任何地方#define从本行开始,之后的代码都可以使用这个宏常量以上宏定义都正确最后一个宏定义采用了接续符“\”,等同于#define PATH_3  D:\Delphi\CTopic3.ppt宏定义表达式#define表达式有函数调用的假象,却...

2018-07-05 16:42:38

阅读数:27

评论数:0

【C深入】18_三目运算符和逗号表达式

关键词:三目运算符、 三目运算符(a?b:c) 的返回类型、逗号表达式、一行代码实现strlen1. 三目运算符三目运算符(a?b:c) 可作为逻辑运算的载体:当a的值为真时,返回b的值;否则返回c的值#include <stdio.h> int ma...

2018-07-05 16:42:33

阅读数:20

评论数:0

【C深入】14_单引号和双引号

char* p1 =  1 ;char* p2 = '1';  ‘1’的ASCII码值为49char* p3 = "1“;0和49地址处为操作系统使用,故访问这些地址如printf("%s, %s, %s", p1, p2, p3)会产生段错误...

2018-07-05 16:42:28

阅读数:23

评论数:0

【C深入】13_接续符和转义符

以反斜杠(\)表示断行。编译器会将反斜杠剔除掉,跟在反斜杠后面的字符自动接续到前一行。注意:反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格。例://这是一条合法的\ 单行注释             -->//这是一条合法的单行注释/\ /这是一条合法的单行注释   -...

2018-07-05 16:42:22

阅读数:17

评论数:0

【C深入】12_注释符号

1.int/*...*/i;正确,编译器会在编译过程删除注释,但不是简单的删除而是用空格代替2.char* s = "abcdefgh   //hijklmn";正确,编译器认为双引号括起来的内容都是字符串,双斜杠也不例外3.//Is it a \  valid...

2018-07-05 16:42:17

阅读数:18

评论数:0

【C深入】7_循环语句

关键词:循环语句分析、do...while循环、while循环、for循环1. 循环语句分析循环语句的基本工作方式 通过条件表达式判定是否执行循环体 条件表达式遵循if语句表达式原则do,while,for的区别 do语句先执行后判断,循环体至少执行一次 while语句先判断后执行,循环体可能不执...

2018-07-05 16:42:12

阅读数:20

评论数:0

【C深入】6_分支语句

关键字:if语句分析、 switch语句分析1. if语句分析if语句用于根据条件选择执行语句else不能独立存在且总是与它最近的if向匹配else语句后可以接连其它if语句 if( condition ) { // statement 1 } else { // statement 2 ...

2018-07-05 16:42:07

阅读数:16

评论数:0

【C深入】4_类型转换

关键词:类型之间的转换、强制类型转换、隐式类型转换1. 类型之间的转换C语言中的数据类型可以进行转换,转换方式有: 强制类型转换 隐式类型转换2. 强制类型转换强制类型转换的语法: (Type) var_name; (Type) value; 强制类型转换的结果: 目标类型能够容纳目标值:结果不变...

2018-07-04 09:50:28

阅读数:22

评论数:0

【C深入】3_浮点数的秘密

关键词:内存中的浮点数、浮点数存储示例、十进制浮点数的内存表示、 float类型的不精确示例1. 内存中的浮点数浮点数在内存的存储方式为:S=M*2^N主要由三部分构成:符号位+指数(N)+尾数(M)。类型符号位指数尾数float1位(第31位)8位(第23-30位)23位(第0-22位)doub...

2018-07-04 09:46:56

阅读数:38

评论数:0

【C深入】2_有符号和无符号

关键词:计算机中的符号位、有符号数的表示法、无符号数的表示法、signed和unsigned、无符号数和有符号数的混合运算、错误使用unsigned的后果1. 计算机中的符号位数据类型的最高位用于识别数据的符号 * 最高位为1,表明这个数为负数 * 最高位为0,表明这个数为正数#include &...

2018-07-04 09:44:22

阅读数:21

评论数:0

【C深入】17_++、--操作使用分析

int i = 3;(++i) + (++i) + (++i)表达式的值为多少?15 吗?16 吗?18 吗?对于这种情况,C语言标准并没有作出规定。有的编译器计算出来为18,因为i 经过3 次自加后变为6,然后3 个6 相加得18; 而有的编译器计算出来为16(比如Visual C++6.0,g...

2018-07-04 09:37:36

阅读数:18

评论数:0

【C深入】19_编译过程简介

被隐藏的过程预编译:处理所有的注释,以空格代替将所有的#define删除删除 ,并且展开所有的宏定义处理条件编译指令#if, #ifdef, #elif, #else, #endif 处理#include ,展开被包含的文件保留编译器需要使用的#pragma指令指令预处理指令:编译:对预处理文件进...

2018-07-04 09:37:30

阅读数:20

评论数:0

【C深入】auto,register,static分析

C语言中的变量可以有自己的属性在定义变量的时候可以加上“属性”关键字“属性”关键字指明变量的特有意义auto即C语言中局部变量的默认属性,并且只能修饰局部变量;编译器默认所有的局部变量都是auto的;auto指明申明的变量在程序的栈上分配空间的static指明变量的“静态”属性;static同时具...

2018-07-04 09:37:22

阅读数:24

评论数:0

【C深入】1_基本数据类型分析

数据类型:数据类型可以理解为固定内存大小的别名数据类型是创建变量的模子数据类型的本质:内存大小的别名char代表1个字节,他就是1个字节的别名;short代表2个字节,他就是2个字节的别名;int代表4个字节,他就是4个字节的别名;......当需要1个字节时,把char这个模子拿到内存里一“咔”...

2018-07-04 09:37:14

阅读数:23

评论数:0

【C深入】15_逻辑运算符&&、||、!使用分析

int i = 0;int j = 0; if( ++i > 0 || ++j > 0 ){        printf("%d\n", i); //输出1        printf("%d\n&a...

2018-07-03 14:27:29

阅读数:191

评论数:0

【C深入】8_goto,void,extern,sizeof分析

goto:禁用voidvoid:不允许定义void类型变量,但可以有void类型指针。void*:void* p指针可以接受任意类型指针,作为右值要赋值给左值类型指针必须强制类型转换,如   void* p1;   int* p2;    p1 = p2; //对,   p2 = p1; //错,...

2018-07-03 14:19:58

阅读数:13

评论数:0

【C深入】9_const和volatile分析

constconst 修饰的是只读变量,不是常量,会在内存中占用空间,本质上const只对编译器有用,在运行时无用const 修饰的只读变量不能作为左值直接赋值,但可以通知指针修改其值const 修饰的只读变量必须在定义的同时初始化case语句后面不可以跟const修饰的只读变量,case后面只能...

2018-07-03 14:18:16

阅读数:17

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭