签到

05月06日
尚未签到

共有回帖数 0

    人心难测

    等级:
    谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是"

    让我欢喜让我忧."欢喜的是,C语言功能非常强大,应用广泛,

    一旦掌握了后,你就可以理直气壮地对他人说"我是电脑高手!"

    ,而且以后若是再自学其他语言就显得轻而易举了.忧虑的是,C

    语言犹如"少林武功"一般博大精深,太难学了.其实我认为

    C语言并非是"difficult(困难)"的,只要你能理清思路,掌握

    它的精髓,那么自学C语言是一件非常容易且又其乐无穷的事.今

    天本人就与大家一起谈谈如何学习C语言或者说学习C语言应从哪几

    方面着手.  

     了解一些基本知识

     一.C语言的背景

     就个人感触,无论学习哪门语言首先应该了解一下自己所学语

    言的背景,也可以说它的发展史.

     C语言属于高级程序语言的一种,它的前身是"ALGOL".其创

    始人是布朗·W·卡尼汉和丹尼斯·M·利奇.C语言问世时是带有

    很大的局限性,因为它只能用于UNIX系统上.然而随着科学技术的

    进步,计算机工业的发展,C语言逐渐脱离UNIX.1987年美国标准

    化协会制定了C语言的国际标准,简称"ANSI C",从此以后它便

    成为一种广泛使用的程序语言.C语言的优点很多,主要的有如下

    四点:

     1.兼备高级语言与低级语言的优点,属于一种中间语言.

     2.它是一种结构化程序设计语言,非常适合结构化程序设计

    .

     3.有较丰富的数据类型,运算符以及函数供以选用.

     4.直接与内存打交道,使修改,编辑其他程序与文档变得轻

    松,简单.

     二.二大语系二种不同的学习方法

     我曾学习过很多程序语言,例如:C,C++(C语言的扩展)

    ,QBASIC,VB(BASIC的可视化),JAVASCRIPT,JSCRIPT  

    ,VBSCRIPT,JAVA,ASP,FOXPRO,PERL等等,就本人实践所得,

    其实高级程序语言分为两大语系.一路是以C为主的程序语言,例

    如:JAVASCRIPT,JAVA等,这类语言在函数的调用,程序语句的书

    写,循环的控制都极为相似.另一路是以BASIC为首的程序语言,

    例如:FOXPRO,VBSCRIPT等,此类语言同样具有相似的函数调用,

    程序语句书写以及循环控制,但与C语系是不同的.因此若是您以

    前是从QBASIC起家的,那么在学习C语言前最好是先洗洗脑,千万

    不要把学习BASIC的方法以及思路用在C身上.

     讲到这里,我想大家对C语言一定有了感性认识吧!下面让我

    们再升华一下,全方位亲密接触它.学习C语言必须从以下四点入

    手,也就是说,只要你能掌握这四点的内容,那么基本上就大功告

    成了.
    一.输入输出

     C语言的输入输出是非常严格的,或许在其他程序语言中我们

    可以不关心这个问题,但在C语言中,我们必须要彻底了解它.

    具体方法我就不在这里多说了,我相信如果你是真的想学c

    你会去买一本c语言的书,回家去研究的

     1.二维浮点数数组的输入

     二维浮点数数组的输入(即:通过键盘给二维浮点数数组赋值

    )在很多专业书中都没有详细讲过这个问题.在给二维浮点数数组

    赋值时一定要先声明一个变量,接着把数值赋予这个变量,最后把

    变量数值赋予二维浮点数数组赋值.实例如下:

    # include "stdio.h"
    main()
    {
    float a[2][3],x ;
    int i,j;
    for(i=0;i2;i++)
     for(j=0;j3;j++)
      {scanf("%f",&x);
       a[j]=x;}
      }
    不能写成:

    # include "stdio.h"
    main()
    {
    float a[2][3] ;
    int i,j;
    for(i=0;i2;i++)
     for(j=0;j3;j++)
      scanf("%f",&a[j]);
    }  

     同样道理,在结构性浮点数组变量中也一定要按照这种格式输

    入.实例如下:

    # include "stdio.h"
    struct student
    {float b[3];
     int x;
    }a[2];
    main()
    {
     float x ;
     int i,j;
     for(i=0;i2;i++)
      for(j=0;j3;j++)
       {scanf("%f",&x);
        a.b[j]=x;}
       }  

     2.注意输出格式中"%"后的字符

     C语言的输出说复杂不复杂,因为常用的都很简单.可说不复



    杂也未必,记得曾领我入门的朋友长说:"

    如果C语言要考得很难的话,根本不用考什么指针,只要专考输出

    格式,我想百分之九十九的学生都不及格."当时我无不认同.

    从这则事例中可以看出C语言的输出格式之复杂程度.因此大家在

    学习它时千万要学会辨别输出格式中"%"后的字符,每个字符都

    有其意义,也都有其作用.

     二.优先级

     说道优先级,有很多朋友都不是很了解或说很模糊.为此我

    想先通过一个例子让各位有个概念.什么叫优先级?比方说,我们

    在公交车终点站排座队时总会遇到70岁以上的老人不需要排队就能

    上车的情景,这就是优先级的涵义.C程序在运行时也象排队坐车

    一样,首先照顾那些优先级高的运算符,若是优先级相同,那么就

    象遇到两位(或两位以上)70岁以上的老人那样,让他们依次上车

    .但是C语言中的优先级的运算并不是千篇一律的,只能说是在大

    多数情况下,有些运算符的优先级有其自己的特点,因此这点大家

    要注意.例如条件表达式:条件?结果1:结果2,这种表达式很多

    朋友都知道,它的作用与IF…ELSE…条件判断语句很雷同,它运算

    时的优先级就不是按照C语言的规则来完成的.所以说对于优先级

    各位编程爱好者一定灵活掌握,不要死记硬背.

     三.指针

     就个人认为,C语言中的指针是最有特色的,当然也是最难学

    的.指针说穿了,其实是变量的一种表现形式,只不过这种变量记

    载的不是数值而是地址.就象一个人可以用姓名来表示自己,也可

    以用身份证号码来表示自己一样.我涉足编程已经有三年多了,

    在这期间曾经收到过很多网友的询问学习指针的方法.就

    本人感触,学习指针最好是先学些计算机硬件工作的原理,例如:

    直接寻址,间接寻址等,只有了解了这些内容以后,你再学指针就

    比较容易理会,毕竟C语言是一门介于机器语言与高级语言中间的

    语言,没有一些硬件工作知识是很难领悟它的真谛的.然而事事并

    非绝对,如果你没有这些知识也不要紧,只要清楚知道以下我给大家总

    结的二点再加上多练习便可:

     1.指针是地址变量:它的值有两种:其一是地址,其二是内

    容.不同的表达方式可以取不同的值,这有点象一个家庭地址在不

    同的场合标识的人物也不同.例如:父母亲在他们的单位所登记的

    家庭地址就代表他们自己,而你在学校中登记的同样的家庭地址就

    代表你自己.

     2.指针是可以运算的,它的运算法则与变量是一致的.

     另外,在编写一个程序时,除非万不得已,一般不要使用指针

    变量.因为指针是比较复杂的,用不好就"当机",我的老师常叫我

    不要老用指针,我问他为什么不能用,他说在小的程序里是看不出来,

    如果在大型的程序中你要用指针,是比较容易出错的,因为它牵扯到了释放问题.

    所以我建议各位对于指针只要能看懂就行,当然如果你是准备参加考试的就另

    当别论了.
    四.函数

     虽说很多程序语言都有函数这一内容,但我觉得C语言的函

    数是最有魅力的.如果你能完全掌握C语言的函数,那么学习C++

    就不成问题了(C++是一门建立在C语言上,但又不同于C语言的

    高级程序语言,它增添了很多函数.).学习函数的方法是比较简

    单的,只有两个字"牢记",即:牢记函数的功能,牢记函数的用

    途以及如何输入输出.有些朋友认为,程序语言中的函数没有多大

    用处,其实这并不正确,函数从本质上讲是一段通用程序,用它可

    以帮助我们节约很多编程的时间,一个聪明的编程者在编写程序前

    往往总是先找自己所编写的程序中有多少是可以用函数来代替的.

    我曾经作过一个比较字符串的程序,用C语言中的strcmp()函数

    只要一句话,而自己编写的话30句话都摆不平,可想而知函数是多

    么实用呀!

     写到这里我想该告一段落了,下面送一个本人自己用C 语言编

    写的注册表比较程序给诸位.此段程序的注释请看"/*…*/"后的

    文字,程序运行时(在DOS模式下)输入的方式如下:compare  


    楼主 2016-03-26 14:53 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知