【编者按】:网学网C/C++为您提供 如何学好计算机C语言 参考,解决您在 如何学好计算机C语言 学习中工作中的难题,参考学习。
一、C语言的主要特点(1)C语言适合于多种操作系统,也适用于多种机型。C语言对编写需要硬件进行操作的场合,明显优于其它高级语言。(2)C语言具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大。(3)C语言结构式语言的结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。(4)C语言把高级语言的基本结构和语句与低级语言的实用性结合起来,可以像汇编语言一样对位、字节和地址进行操作。
二、C语言几个函数的使用方法(一)main()函数的正确定义main()函数必须声明为int main()或int main(void)或int main(int argc,int**argv)不能定义为void main(){}以消除无返回值警告,但是它可能导致与调用者期待的返回顺序不能的返回顺序
(二)有关i++的定义int i=3;printf("%d",(i++)*(i++));我的编译器输出结果是9,而不是12。原因尽管后缀自加和后缀自减操作符++和--在输出其旧值之后才会执行运算,但这里的“之后”常常被误解。没有任何保证确保自增或自减会在输出变量原值之后和对表达式的其它部分进行计算之前立即进行。也不能保证变量的更新会在表达式“完成”之前的某个时刻进行。本例中,编译器选择使用变量的旧值相乘以后再对二者进行自增运算。
(三)NULL(空指针)到底是什么?每个指针都有一个特殊的值,空NULL,这与其他对象或函数的地址都不相同,也就是说在程序中通过&(取地址运算符)永远无法得到NULL地址。当一个指针类型的变量被赋予0值,那么编译器在编译的时候会将其作为NULL指针,即在指针初始化、比较、赋值的时候NULL可用0代替。即自己定义#define NULL 0如果NULL要以函数参数传递的时候,编译器可能不知道这是指针类型的变量而把其当作是常数0看待,这是可以进行强制类型转换(char*)0来使编译器将其作为NULL来使用。即#define NULL((void*)0)所以空指针的使用注意*在源码中使用空指针常数时,则使用0或NULL*在函数的参数传递时如果使用空指针,则使用NULL或相应的类型指针0((type*)0)
(四)*p++的含义是自增指针p,还是自增p的内容*p++和*(p++)等价,++和--比前缀的一目操作运算符优先级高,它的含义是自增p并返回p增加前地址的内容。所以如果自己比较混淆,干脆使用括号消除自己的歧义。
三、数组的应用用简单变量固然能编出各种各样的程序,但在实际处理问题时,常常遇到这样的情况:需要对同一类型的数据进行多次记录,并且需要将历次记录保留下来进行处理。例如,某班有40名同学,他们的某次测验的成绩共有40个数据,需要将数据记录下来分析成绩。如果用简单变量来表示,命名起来很麻烦,操作更不方便。我们可以把同一类型数据的变量用同一个名字来代表,而这一类型的不同变量用不同的号码加以区别。如用m1,m2,m3…m40代表测验成绩,可以表示为m(1),m(2),m(3)…m(40)。我们把按一定顺序排列的一组数据或变量叫做数组。
数组中的每个数据或变量叫做数组元素。在数组中,每个数组元素都处于某一确定的位置,这个位置就称为该数组的下标。如果数组元素是变量,也就称为下标变量。下标变量的格式为:数组名(下标)例如,a(1)、a(2)…t(10)等都可以作为下标变量。数组中下标的个数称为数组的维数。我们经常使用的有一维数组和二维数组。数组定义方法:类型数组名[下标](下标是指数组的长度)例:int array[10]//这样我们就定义了一个长度为10的数组为什么说在某些情况下数组比单个变量好用呢?下面来做一个示范:输入一个五位数,分解为五个单个数字并输出。要做到这个要求首先要懂得拆数。下面来讲一下拆数的方法:首先,我们要使用取余来取一个数个位数字。使用“%”便可以达到要求。