
C高级
程工助力英语中国话
当某一天你意识到——生命不息,学习不止时,那么你就成长了。
展开
-
预处理命令
1.预处理命令: C程序的源代码中可以包括各种编译指令,这些指令称为预处理指令。虽然它们不是C语言的一部分,却扩展了C程序设计的环境。 预处理命令都是以"#"开头的,ANSI标准定义的C语言预处理程序有:#define,#error,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#undef,#line,#pragma. 在源程序中这些命令都放原创 2016-05-28 15:25:11 · 1130 阅读 · 0 评论 -
作用域
1.作用域:是指标识符的有效范围,变量的有效范围称为变量的作用域,所有的变量都有自己的作用域,作用域的范围由说明方式决定。VC++中作用域可以分为块作用域、文件作用域、函数原型作用域、函数作用域和类作用域。变量主要分为局部变量和全局变量。 块作用域:用一对花括号括起来的一部分程序称为一个块。在块内定义说明的变量,其作用域仅限于块内,离开该块后再使用该变量是非法的。具有块作用域的变量是局部变量。原创 2016-05-28 15:26:13 · 478 阅读 · 0 评论 -
存储类型
2.存储类型:是指变量占用内存空间的方式,也称为存储方式。变量占据内存空间的类型分为静态和动态两种。静态:程序开始执行时分配存储空间,直到程序运行结束收回其内存;动态:程序运行过程中用到时才分配内存空间,到其作用域之外时,收回其内存。 自动变量(auto)和寄存器变量(register)属于动态存储方式,外部变量(extern)和静态变量(static)属于静态存储方式。 自动原创 2016-05-28 15:26:51 · 1405 阅读 · 0 评论 -
C语言基础
1.int, float, double这三种类型是不兼容的。 2.int, short, char这三种类型兼容。相互转换的时候可能错也可能对。如char 和int之间的转换,当数值是在char所表示的范围之内的时候就不会出错,但是若是超过了char的范围后就会出错。 3.所有指针类型(int *, double *, char *,,,)的解析方式都是相同的,都是将所占的4个字节的32个二原创 2016-05-20 10:10:06 · 707 阅读 · 0 评论 -
函数指针实战
25.函数指针的实战。 用函数指针指向不同的函数来实现同一个调用执行不同的结果,类似C++或Java语言等面向对象的语言的多态一样。 下面是一个简单的计算机程序: /* #include typedef int (*pType)(int , int ); int add(int a, int b) { return (a + b); } int sub原创 2016-05-20 10:11:48 · 368 阅读 · 0 评论 -
typedef
30.typedef C语言中的两种类型:内建类型(编译器自带类型):ADT,用户自定义类型:UDT 注意:typedef关键字定义(重命名)的是类型而不是变量。类型是一个模板,可以用来定义很多该类型的变量,没有被分配内存的,而变量是占内存的。 typedef char * pChar; //typedef 类型原型 新名字 #define pChar char * //#define 新原创 2016-05-20 10:13:14 · 462 阅读 · 0 评论 -
二重指针
33.二重指针 二重指针和一重指针在本质上都是指针变量,指针变量的本质都是变量。指针变量本身都占4字节内存空间。在我PC机上指针类型变量占8个字节。 /**************************二重指针******************************/ char **p1; //二重指针 char *p2; //一重指针 printf("sizeof(p原创 2016-05-20 10:14:57 · 856 阅读 · 0 评论 -
二维数组
34.二维数组:一维数组在内存中是连续分布的多个内存单元组成的,而二维数组在内存中也是连续分布的多个内存单元组成的,从内存的角度来看二者是没有本质区别的,只是一维数组和二维数组的管理方式不一样而已。 二维数组和一维数组在内存使用效率、访问效率上是完全一样的,但是在某些情况下使用二维数组更好理解,代码更好写,更利于组织。使用二维数组并不是必须的,而是一种简化编程的方式。 数组有两种访问方式:下标原创 2016-05-20 10:16:00 · 373 阅读 · 0 评论