一、C语言法式的组成与C++、Java相比,C语言其实很简朴,但却很是重要。因为它是C++、Java的基础。
不把C语言基础打扎实,很难成为法式员妙手。1、C语言的结构先通过一个简朴的例子,把C语言的基础打牢。C语言的结构要掌握以下几点:(1)C语言的注释是/* ··· */,而不是//···,//是C++的单行注释,有的C语言版本也认可。
(2)C语言区分巨细写,每句以分号末端。(3)C语言法式是从main函数开始的。
函数的返回值如果缺省则为int,而不是void。(4)函数必须用return来返回。纵然void类型也不建议省略。(5)使用函数时须包罗相应的头文件。
自界说的头文件用双引号,C语言自身的头文件用<···>2、main()函数的写法与寄义main()的参数和返回值全部省略,这和上例寄义相同。省略写法是一种很欠好的习惯。main()的参数是一种不限个数的写法,argc代表参数的个数,真正的参数是放在argv[]数组内里的。
注意:当数组当参数用时,数组被降格为指针。初学者先照着样子写,以后小雅会详细说明指针和数组的区别。3、头文件的意义每个C法式通常分为两个文件。
一个文件用于生存法式的声明(declaration),称为头文件。另一个文件用于生存法式的实现(implementation),称为界说(definition)文件。C法式的头文件以“.h”为后缀,C 法式的界说文件以“.c”为后缀。头文件的内容也可以直接写C法式中,但这是很欠好的习惯。
许多初学者用了头文件,却不明其理。在此略作说明。
(1)通过头文件来挪用库功效。在许多场所,源代码未便(或禁绝)向用户宣布,只要向用户提供头文件和二进制的库即可。用户只需要根据头文件中的接口声明来挪用库功 能,而不必体贴接口怎么实现的。
编译器会从库中提取相应的代码。(2)头文件能增强类型宁静检查。如果某个接口被实现或被使用时,其方式与头文件中 的声明纷歧致,编译器就会指堕落误,这一简朴的规则能大大减轻法式员调试、改错的 肩负。关于头文件的内容,初学者还必须注意。
(1)头文件中可以和C法式一样引用其它头文件,可以写预处置惩罚块,但不能写语句下令。(2)可以申明函数,但不行以界说函数。(3)可以申明常量,但不行以界说变量。(4)可以“界说”一个宏函数。
注意:宏函数很像函数,但却不是函数。其实还是一个申明。(5)结构的界说、自界说数据类型一般也放在头文件中。
(6)#include <filename.h>,编译系统会到C语言牢固目录去引用。#include "filename.h",系统一般首先在当前目录查找,然后再去情况指定目录查找。
4、好的气势派头是乐成的关键版本声明、函数功效说明、注释等是C语言法式的一部门。不养成很好的习惯则不能成为C语言妙手(专业人员)。二、比力、逻辑、位运算符只有类型相同(或C语言能自动转换)的表达式才气比力,如果类型差别就必须用函数转换。
例如:判断一字符串的长度是否即是10,就要用strlen()将字符串的长度求出来酿成了整型,才气和10比力。比力运算符只有6个,即:即是(==)、不即是(!=)、大于(>)、小于(<)、大于即是(>=)、小于即是(<=)。比力运算符也叫关系运算符。
逻辑运算符只有3个,即:与AND(&&)、或OR(||)、非NOT(!)。位运算符只有6个,即:与AND(&)、或OR(|)、非NOT(~)、异或XOR(^)、左移ShiftLeft(<<)、右移ShiftRight(>>)。
三、数组(1)数组名也是一变量名,界说时须指定类型和长度。(2)长度可以方括号中直接指定,也可以通过赋值来间接指定。
(3)数组可以在界说时直接赋值,也可以界说时不赋值,之后再赋值。(4)当使用超出规模的值时,编译不堕落,但运行会堕落。
(上例运行时堕落后,选“忽略”后获得的效果)数组的地址弄清数组地址对使用数组有很大利益,另外,有的函数的参数是指针(如scanf函数),如果要用数组的某一元素作参数,就必须知道其地址。1.数组iArr是int类型,所以它的地址是按4字节递增。
2.数组cArr是char类型,所以它的地址是按1字节递增。3.数组元素的地址是通过数组元素前面加“&”来取得。(如:&iArr[3])4.数组名单独使用时,代表该数组的首地址。(iArr等同于&iArr[0])(注意:以后使用指针会经常用到这一点)四、字符数组和字符串的重界说字符数组就是字符串吗?有人说是,因为书上这么写,教师也这么教的。
小雅不敢说书上或教师们错了,但至少可以说许多初学者都混淆了这两个观点。因此,在这此将这2个观点再明确一下。1.字符数组,完整地说叫字符类型的数组。字符数组纷歧定是字符串。
2.字符串是最后一个字符为NULL字符的字符数组。字符串一定是字符数组。3.字符数组的长度是牢固的,其中的任何一个字符都可以为NULL字符。
4.字符串只能以NULL末端,其后的字符便不属于该字符串。5.strlen()等字符串函数对字符串完全适用,对不是字符串的字符数组不适用。从上面例子看来,还要注意以下几点:(1)char sArr[] = "quanxue";这种方式,编译时会自动在末尾增加一个NULL字符。
(2)NULL字符也就是'