3011C语言_基础知识

2023-06-25,

第一章  基础知识

1.1  基本框架

//任何一个c语言程序都必须包括以下格式:
int main(int argc, char *argv[] )
{
return ;
}
//这是c语言的基本结构,任何一个程序都必须包含这个结构。括号内可以不写任何内容,那么该程序将不执行任何结果。

1.1.1  main()

在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。
main(int argc,char**argv) {} 第一个参数是表示输入的字符串的数目,第二个参数是指向存放的字符串

1.1.1.1  C语言中int main()和int main(void)区别

.K&R书上main函数定义写成main(){...} 形式,不写返回值类型也不写参数列表,这是Old Style C的风格。
Old Style C规定不写返回值类型就表示返回int型,不写参数列表 就表示参数类型和个数没有明确指出。
这种宽松的规定会导致很多复杂的Bug产生,不幸的是现在的C标准为了兼容旧的代码仍然保留了这种语法。 . 其实系统在调用main函数时是传参数的,所以main函数最标准的形式应 该是int main(int argc, char *argv[])。
C标准也规定了int main(void) 这种形式,如果不使用系统传进来的两个参数也可以写成这种形式。
但除了这两种形式之外,以其它形式定义main函数都是错误的或不可移植的。

1.1.1.2  标准形式

在最新的 C99 标准中,只有以下两种定义方式是正确的:
int main(void){}
//整数类型主函数(无类型) = int main()
int main(int argc,char **argv)
//整数类型主函数(整数类型 统计参数个数,字符类型*数组指针至字符[])

1.1.1.3  C++98中的定义

如下两种main函数的定义方式:
int main( )
int main( int argc, char *argv[] )

1.1.2  函数体

被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容.
在{ }里面每一句话后面都有一个分号(;),
在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。

1.1.3  #include<stdio.h>
1.1.3.1  注意

(1)以#号开头
(2)不以分号结尾
(3)# include”stdio.h”也是对的
1.1.3.2  预处理
这一行没有分号,所以不是语句,在c语言中称之为命令行,或者叫做“预编译处理命令”。 编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
1.1.3.3  # include “stdio.h”与#include <stdio.h>区别
<>搜索顺序为:系统目录-->环境变量目录-->用户自定义目录。
""则是用户自定义目录-->系统目录-->环境变量目录.
1.1.3.4  文件包含的考查点:
这里一个C语言程序是有两个文件组成,分别是no1.c, no2.c。那么no1.c中最开始有个#include”no2.c”他表示把第二个文件的内容给包含过来,那么no1.c中调用add()函数的时候就可以了把数值传到no2.c中的被调用函数add()了。
一个文件必须要有main函数。这句话错了。例如:no2.c就没有。
头文件一定是以.h结束的。这句话错了。例如:no1.c中就是#include”no2.c”以.c结尾的。
1.1.4  注释
程序中以 /*开头并且以*/结尾的部分表示程序的注释部分,注释可以添加在程序的任何位置,为了提高程序的可读性而添加,但计算机在执行主函数内容时完全忽略注释部分,换而言之就是计算机当做注释部分不存在于主函数中。
注意:1.F      //      /*
*/
2.F      /*    /*  */     */
3.T     //    //
1.2  C程序的生成过程
C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件。

编译过程
源程序的扩展名为 .c  -(编译)-> 目标程序的扩展名为  .obj  -(连接)->可执行程序的扩展名为 .exe 。
1.3  标识符
概念

在编写程序时,必须为函数、变量等命名,这个名字称为标识符。
1.3.1  标识符分类(都是·小写)
①关键字(32个)(有固定含义,不可改变)

类型说明符:int,float,double等
语句定义符:if,for,while等
②预定义标识符(有特殊含义,可以改变)
库函数的名字:printf , scanf 等
编译预处理命令名:include等
③用户自定义的标识符  
ⅰ格式合法,ⅱ不能使用关键字,ⅲ见名知意
1.3.2  关键字
关键字是具有特定含义的,专门用来说明c语言特定成分的一类标识符,不能用作用户的标识符。

auto break       case        char          union
do         double     else        enum     extern
goto           if     int        long short
signed          static        sizeof      struct       switch
unsigned void for    while        typedef
continue    float     return          typedef     default
1.3.3  预定义标识符
预定义标识符在c语言中也有特定的含义,但可以用作用户标识符,预定义标识符分为两类:

(1)、库函数名字,比如(printf,scanf,sin,isdigit等)
(2)、编译处理命令名,比如(define,include)
1.3.4  用户标识符
用户根据需要自己定义的标识符称为用户标识符。无论如何自定义标识符,都必须符合标识符的三条命名规则。
注意:正常系统函数由_开头,因此不建议自定义函数以下划线开
1.3.4.1  命名规则
C语言中标识符的命名规则如下:

1、标识符只能由字母、数字、下划线组成;
2、标识符的第一个字母必须是字母和下划线;(开头)
3、标识符区分大小写字母,如If和if是两个完全不同的标识符。
合法标识符如下:
A6       b_3   _mn   _
非法的标识符如下:
ab#12, 8m , tr3:4 , yes no
标识符不能与程序中具有特殊意义的关键字相同,
不能与用户编制的函数名、C语言库函数相同,
在程序中各种标识符尽量不要重复,以便区分。
选择变量名和其他标识符时,应注意做到 “见名知义”。

3011C语言_基础知识的相关教程结束。

《3011C语言_基础知识.doc》

下载本文的Word格式文档,以方便收藏与打印。