黑马程序员_C语言复习

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一.C语言的起源

贝尔实验室的 Dennis在1972年开发了C,当时他正与Ken Thompson一起设计UNIX操作系统。


二.设计特性

1.控制特性

其设计使用户可以自然地采用自顶向下的规划、结构化的编程。

2.高效性

C语言可以表现出通常只有汇编语言才具有的精细控制能力,可以细调程序以获得最大速度或最大内存的使用率。

3.可移值性

C是具有一定移植性的,虽然诸多版本的编译器让此事不那么容易,但是如果不包括那些为特定硬件或操作系统而编写的代码,还是可以实现的。

4.强大的功能和灵活性

强大而灵活的UNIX是由C编写的,其它语言(如FORTRAN,Perl,Python,Pascal,LISP,LOGO和BASIC)的许多编译器和解译器也是用C编写的,C程序已经用于解决特理学和工程学问题,甚至用来为《角斗士》这样的电影制造特珠效果。

5.缺点

C的简洁性与其丰富的运算符相结合,使其可能会编写出极难理解的代码,C语言的指针可以自由的访问内存,可能会犯下难以追踪的错误,自由的代价就是永远警惕与谨慎。


三.环境

1.UNIX

UNIX C编译器称为cc 要编译inform.c程序需要键入如下内容 cc inform.c 得到a.out的可执行文件,cc编译器会创造一个名为inform.o的目标文件,在链接器生成可执行文件后删除目标文件

2.LINUX

LINUX C编译器称为gcc


四.HelloWorld

#include
int main(void)
{
    printf("Hello World");
    return 0;
}

五.常用库

#include       //“standard input & output"(标准输入输出)
#include  //inttypes.h是C标准函数库中的头文件,提供了各种位宽的整数类型输入输出时的转换标志宏。
#include //complex.h是C标准函数库中的头文件,提供了复数算术所需要的宏定义与函数声明,角度弧度等。
#include      //C语言里面关于字符数组的函数定义的头文件,常用函数有strlen、strcmp、strcpy等等
#include        //float.h 提供了浮点型的范围和精度的宏,没有类型和函数的定义,一般用于数值分析。
#include      //limits.h专门用于检测整型数据数据类型的表达值范围。
#include       //数学函数库,一些数学计算的公式的具体实现是放在math.h里
#include   //C语言的标准函数库中的头文件stdbool.h包含了四个用于布尔型的预定义宏。本头文件是在C99标准中引入的。
#include       //判断字符是否不是空格、逗号,如此等等,ANSI C有一系列的标准的函数可以用来分析字符,ctype.h头文字包含了这些函数的原型
#include      //stdlib 头文件即standard library标准库头文件 stdlib.h里面定义了五种类型、一些宏和通用工具函数
#include        //time.h是C / C++中的日期和时间头文件

六.语法

1.变量声明

int a,b,c;

int a=0,b=0,c=0;

int a=1;

2.函数的声明

int a();

3.函数的实现

int a()

{

return 0;

}

4.常用的符号

*作为单元运算符时,是从某地址取值 例int *a=b; c = *a就是取出b的值. int *a就是指针标识符

&作为单元运算符时,就是引用运算符,用来取出对象的地址

5.简单的输入输出

scanf("%d",&a); //从键盘上输入数字,并存入a的地址中。

printf("%d",a);//打印出a,并且是int类型

sizeof可以查看数据类型,或对象所占的字节数

%x是十六进制

%0是八进制

6.字符串与数组

字符串以'\0'结尾

一般转换成数组的字符串会自动让'\0'占最后一位,如果用%s打印一个没有‘\0’字符串数组,那么可能会引发内存溢出,因为在遇到'\0'之前会一直在内存中读取直到遇到'\0'

7.常量

常量有两有定义方式一种是#define a='a' 另一种是 const int a='a' 常量是只读值,必须在声明时初始化

8.自定义类型

typedef  int * P

typedef int (*SUM)(int,int);

9.指派运算符 

(type)它将它后面的值 转换为由圆括号中的关键字所指定的数据类型 (float)9 将变为  float 9.0

10.结构

struct student {int a,int b} ; //声明一个变量 struct student s = {0,1}; s.a;

11.枚举

enum  ee {a,b,c,d}; enum ee e for(e=a;e<=d;e++){printf("%d",e);}

12.生存周期

代码段是一段独立的内存区域
在代码段里的变量,将会替代全局变量发生作用,而且代码段里的变量,并不累加到其它作用域里,当代码段执行完全,代码段里声明的变量也将结束生命,除非是静态变量,静态变量的内存地址将保留,直到程序结束。
全局变量,可以在多个文件中共享
局部变量 可以在本文件中共享,如果是在代码段或函数的作用域中声明的,那么将只能在固定作用域起作用。
局部变量的作用域取决于它的位置。



------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

你可能感兴趣的:(复习,C语言)