C语言基础入门必读

2019-07-29  本文已影响0人  iwen大大怪

        C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。下面我来分享我学习的c语言的一些收获。


一、include是一个宏,用来导入头文件

       1.为什么要导入头文件?因为在这个头文件的库里包含了很多方法,方便我们在工程中直接调用

       2."  "是表示编译器会首先从自己的工程里面去查找这个头文件,如果找不到就会去从系统库里面查找这个头文件

       3.< >是表示编译器会首先从系统库里面查找这个头文件, 如果找不到会从自己的工程里面去查找这个头文件


二、main函数

任何一个程序都必须有,这是程序的入口点,在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。


三、返回值

     int 标识这个程序的运行结果(程序在运行时会在系统中申请资源) 0正常 1失败

      0--->正常退出:程序在运行中申请的资源全由程序自己分配

      1--->非正常退出:程序会收回运行过程中获取的所有资源


四、c语言运行机制

预编译/预处理:

       1.宏定义指令:将所有的#define删除,并且展开所有的宏定义

       2.条件编译指令:用来处理所有的条件预编译指令

       3.头文件包含指令:用来处理#include预编译指令,将头文件展开并且插入到该预编译相应            的位置,得到完整的程序

编译:

     1.所谓的编译,就是将预处理完成的程序文件进行语法分析、语义分析等生成相应的汇编代          码

汇编:

    1.将汇编代码转化变成机器可以执行的命令

链接:

    1.通过调用链接器ID来链接程序在运行过程中所需要的目标文件,以及工程中的其他库文             件,生成可执行文件


五、定义一个变量

  定义变量时,系统会立刻分配一个内存,并且会赋值,当程序运行完了以后,内存会自动回收

```

int _tmain(int argc, _TCHAR* argv[])

{

int a=1;

return 0;

}

```


六、声明一个变量

声明变量时,系统不会立刻分配内存,只有在这个变量要被用到时才会分配内存,当程序运行完了以后,内存会自动回收


七、宏定义

宏定义时变量要大写 ,后面的分号尽量不要加。

例如int arr[PI]={};如果加了括号加会报错;会替换成arr[PI;]


八、基本数据类型

int    整数 64位系统里面占4个字节 32位占2个字节,输出格式:%d %02d 不足的补齐 01

float   浮点型 占4个字节内存空间,输出格式:%f %.1f 保留1位有效数字

double    双精度浮点型 占8个字节内存空间,输出格式:%f 

long 长整型     占8个字节内存空间,输出格式:%ld

char    字符型 占1个字节内存空间,输出格式:%c输出字符  %d输出ASCII码值

bool    布尔类型 true/false 非零即真 零即假

九、float与double的区别


1.在内存中占有的字节数不同

单精度浮点数在机内存占4个字节(32位),双精度浮点数在机内存占8个字节

2.有效数字位数不同

单精度浮点数有效数字8位,双精度浮点数有效数字16位

3.数值取值范围

单精度浮点数的表示范围:-3.40E+38~3.40E+38

双精度浮点数的表示范围:-1.79E+308~-1.79E+308

4.在程序中处理速度不同

一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快


十、结构化控制语句

(一)if...else语句

```

if(表达式1){

     语句块1

 } else  if(表达式2){

    语句块2

}else  if(表达式3){

    语句块3

}else  if(表达式m){

    语句块m

}else{

     语句块n

}

```

1.执行过程

依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句块n。然后继续执行后续程序。


(二)while语句

1.while(循环继续条件){ 循环体语句组;}

2.执行过程

(1)求解"循环继续条件"表达式。如果其值为非0,转2);否则转3)。

(2)执行循环体语句组,然后转1)。

(3)执行while语句的下一条。

显然,while循环是for循环的一种简化形式(缺省"变量赋初值"和"循环变量增值"表达式)。


(三)do...while语句

1.一般格式

do{ 循环体语句组; }

while(循环继续条件);

当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。还是建议用复合语句写,显得你非常细心。

2.执行过程

(1)执行循环体语句组。

(2)计算"循环继续条件"表达式。如果"循环继续条件"表达式的值为非 0(真),则转向(1)继续执行;否则,转向(3)。

(3)执行do-while的下一条语句。

do-while循环语句的特点是:先执行循环体语句组,然后再判断循环条件。


(四)for循环语句

1.选择for循环的标准:一般和数组相关,并且需要知道当前是第几次循环

2.for(循环变量赋初值;循环条件;循环变量增值){内嵌语句}

3.它的执行过程如下:

(1)循环变量赋初值

(2)先求循环条件,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第三步

                         若为假(值为0),则结束循环,转到第5步.

(3)求解循环变量增值

(4)转回上面第(2)步骤继续执行;

(5)结束循环,执行for语句下面的一个语句;


(五)switch语句

```

1.switch(表达式)

{

case常量表达式1: 语句1;break;

case常量表达式2: 语句2;break;

    ......

case常量表达式n: 语句n;break;

default: 语句n+1;break;

}

```

2.switch主要需要注意的方面有两个:

(1)从哪进:表达式的值与case后的值相同则进入,case顺序不影响结果

(2)从哪出:遇到break或整个switch结束(break以前是为了灵活,现在是累赘)

3.与if语句的不同:

If语句中若判断为真则只执行这个判断后的语句,执行完就跳出if语句,不会执行其他if语句;

而switch语句不会在执行判断为真后的语句之后跳出循环,而是继续执行后面所有case语句。

在每一case语句之后增加break语句,使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。

上一篇下一篇

猜你喜欢

热点阅读