zoukankan      html  css  js  c++  java
  • 和小石头一起学C(C语言之结构体 一)

    宋·罗大经《鹤林玉露》:“绳锯木断,水滴石穿。”

    水不断下滴,可以闹穿石头。比喻只要有恒心,不断努力,事情一定成功。

    看此文章者必读以下内容:

      1.此文章上的内容全是个人之感悟,不代表任何的权威性。

      2.此文章的代码完全可以编绎运行。

      3.此文章的例子只是入门级的。学完之后。不敢保证诸位可以成为高手。也不敢保证诸位可以写出什么超级的项目。只是一个入门的例程。不过我会的以后的时间内增加难度。

         4.代码运行后的界面全是DOS的黑白界面。(呵呵。因为这不是windows c 编程。不过我以后会写关于这方面的内容的)

            看此文章系列者,必须抱有"绳锯木断,水滴石穿。"

         作者简历一下。呵呵这可不是宣传我自已。本人编程10年。做过各种语言开发项目。(Web方面除外)。

    手机开发。MIS系统开发。研发项目开发。远程控制项目开发(不是你们想的那种HACK级的。只是普通的合法的正常的)

    所以我一直喜欢编程这个行业。废话太多了(有人该扔砖头了)

    现在言归正题。

         本篇中的程序开发环境是 C与C++程序设计学习与实验系统 (版本以你看文章的时候最高版本,呵呵。本人现在用的是2010.2 共享版),切记不可以使用破解的版本。

    因为本人认为搞程序的人,首先要尊重其它程序员的劳动成果。因为你不尊重别人的成果。将来有一天你辛苦开发的程序,也会被别人破解后使用。

    佛日:业有三报,一现报,现作善恶之报,现受苦乐之报;二生报,或前生作业今生报,或今生作业来生报;三速报,眼前作业,目下受报

    又跑题了。怪不得我女朋友,总说我是蚂蚱(思维跳跃太快)。

         现在开始正式的学习C语言的结构体,请允许我在多说几句,呵呵。你可能会问,你为什么上来就学习结构体,而不是从头学起呢?这样会让刚接触C的人

    感到困惑,这可以放心。代码中涉及到的基础知识,我会仔细讲解的。我个人认为如果上来就直接讲解C的基础知识。肯定会越看越困越烦。呵呵。

    现论来源于实践。在通过实践去检验所学的理论。好了,别在说其它的了。下面正式开始。

         

          结构体是一种 数据类型(一会在讲解什么是数据类型),它把互相联系的不同类型的不同类型的数据组合成一个整体。

    结构体定义的语法如下: (有的初学者非常不注重看语法格式。其实语法格式对开发尤其是初学者很有帮助。我们回头想想。那些辛苦编写的代码一运行。就报出各种各样的错误。其实仔细一看就是语法格式上的错误居多。)

      struct 结构体名称

    {

      成员说明;

    };/*注意 ;这个符号不可以没有。否则出错*/

    题外语:(呵呵  /*       */    这个符号就是C语言中的注释写法。为什么要写注释,因为注释是给别人看的。写给以后的你看的。除非你写的代码永远封存。)

    /*
    文件名称 :
    作者:
    编写日期 :
    说明 :
    测试要点:  
    修正履歴:
    */

    以上写法,是我个人写项目时使用的格式,呵呵。个人认为,除非极其简单,否则对项目应有注释说明。

    尤其是 测试要点: 和 修正履歴:

    没有人写完的项目不进行修改的。这样的好处只能意会不可言传。不过你要是不写,呵呵,有你苦头吃。(:) 题外语结束)

    现在我们进行项目实践,呵呵(来点掌声)

    首先我们运行 C与C++程序设计学习与实验系统 2010.2 这个程序图标。


     

     方便吧。直接点运行按纽(那个画三角的图标)就可以看到运行后的效果。(感谢作者为我们开发出这么好的工具软件)

    现在我们开始写程序。

    写程序前一般要先问一下自已。

    1.这个程序是做什么的。 2.这个程序谁来使用

    现在我来回答一下。这个程序只是学习C语言中结构的一个例子。 这个程序主要是给看这篇文章的人使用。

    目的明确,现在开始工作。

    代码如下:

    /*
    文件名称 :noname0.c
    作者:小石头
    编写日期:20100527
    说明:1.学习C语言中结构的一个例子。
           2.这个程序主要是给看这篇文章的人使用。
    测试要点:  
    修正履歴:
    */
    #include "stdio.h"
    void main()
    {
       
    }

    struct Stu //定义学生信息结构
    {
        int age;//年龄
        int Sex;//性别
     };

     Stu就是我们定义的结构

    学生信息一般包括如下信息。1.学号 2。姓名 3.年龄 4.性别

    1、2、涉及到字符串的概念。所以先临时定义二个变量。

    题外语:数据类型是所有编程语言中的重要的一个概念。开发语言只是一个工具而已。C也好,C++、C#、JAVA也好。在这些开发语言中,数据类型都是一个很重要的概念。

    掌握好学习方法。你才能触类旁通。一通则百通。这也是为什么有的人。对新的开发语言掌握着很快。因为在他们眼中,开发语言只是工具而已。(题外语结束) 

    C的数据类型分为4种:整型浮点指针聚合类型(结构体和数组)

    我们现在学的结构体也是数据类型。

    整型类型。包括字符、短整型、和长整型。它们又分为有符号和无符号的区别。是不是看到这有点糊涂了。呵呵。

    其实。计算机主要是和内存打交道。内存中存放的数据称为变量。因为是可变化的量。

    定义变量时一定要先定义其数据类型。

    比如 一个人的年龄。他的范围就是 1岁至120岁(我以为已经是长寿了)。

    定义起来。就是int age 或是 unsigned int (无符号型) 但是

    一个人的化学成绩 如果也用int 就不行了。因为成绩不可能全是整数。例如:A这个人的成绩为95.5分你如何表示呢?要用到浮点型

     /*
    文件名称 :noname0.c
    作者:小石头
    编写日期:20100527
    说明:1.学习C语言中结构的一个例子。
           2.这个程序主要是给看这篇文章的人使用。
    测试要点:  
    修正履歴:
    */
    #include "stdio.h"
    void main()
    {
       
    }
    struct Stu //定义学生信息结构
    {
     int age=25;//年龄
     int Sex;//性别
     
    };

     如果这段代码改成这样。运行一下,你会发现提示有错误。错误在那呢?

    原来在这里

    int age=25;//年龄

    结构中的数据类型定义以后。是不能给其赋初值的。呵呵,是不是有点画蛇添足的感觉。

    int age ;//年龄

    现在在运行程序,运行结果如下。

    呵呵一个空白程序。

    如果这是一个项目的话,你的老板肯定会疯掉。什么都没有。怎么办。继续

    我们打出一个人的信息。

    打出的结果为

    A的年龄是25

    A的性别是0

      

    当当当,新鲜的代码出炉了。

    /*
    文件名称 :noname0.c
    作者:小石头
    编写日期:20100527
    说明:1.学习C语言中结构的一个例子。
           2.这个程序主要是给看这篇文章的人使用。
    测试要点:  
    修正履歴:
        小石头 20100527 程序中增加输出A这个学生的年龄和性别信息*/
    #include "stdio.h"
    void main()
    {
        struct Stu A ;
        A.age=25;
        A.Sex=0;
        printf("A的年龄是%d",A.age);
        printf("A的性别是%d",A.Sex);

    }
    struct Stu //定义学生信息结构
    {
     int age;//年龄
     int Sex;//性别
     };

    先不讲解内容。运行一下看其运行后的结果(满怀希望中)。

     

     

     

    出现问题了。这是什么原因呢?

     

     呵呵。搜搜百度。遇到问题第一我们不要着急。要学会分析错误。只有会分析错误,才能更好的解决错误。

    c:\documents and settings\lanzhi.o-rid\local settings\temp\temp927\noname0.c(14) : error C2079: 'A' uses undefined struct 'Stu'
    c:\documents and settings\lanzhi.o-rid\local settings\temp\temp927\noname0.c(15) : error C2224: left of '.age' must have struct/union type
    c:\documents and settings\lanzhi.o-rid\local settings\temp\temp927\noname0.c(16) : error C2224: left of '.Sex' must have struct/union type
    c:\documents and settings\lanzhi.o-rid\local settings\temp\temp927\noname0.c(17) : error C2224: left of '.age' must have struct/union type
    c:\documents and settings\lanzhi.o-rid\local settings\temp\temp927\noname0.c(18) : error C2059: syntax error : ')'

    通过上面的提示内容。分析原来是Stu这个数据类型系统不识别。

    为什么不识别。语法没有错。

    小石头思考中。

    小石头突然想到。C语言中变量类型定义的顺序问题。是不是顺序造成的。代码修改一下。

    /*
    文件名称 :noname0.c
    作者:小石头
    编写日期:20100527
    说明:1.学习C语言中结构的一个例子。
           2.这个程序主要是给看这篇文章的人使用。。
    测试要点:  
    修正履歴:
        小石头 20100527 程序中增加输出A这个学生的年龄和性别信息
    */
    #include "stdio.h"
    struct Stu //定义学生信息结构
    {
     int age;//年龄
     int Sex;//性别
     
    };
    void main()
    {
        struct Stu A ;
        A.age=25;
        A.Sex=0;
        printf("A的年龄是%d",A.age);
        printf("A的性别是%d",A.Sex);

    }

    在运行一下。

    呵呵。你看我这表情就知道。运行成功了。

     

     

    我们在写程序的时候,无论项目的大小。就要心中想着这个程序的使用者。这样才能发现问题。

    这个程序一共有二个问题:

    1.性别是用数字代替的。很难让人明白。这个A的性别到底是男还是女。

    2.显示信息中的年龄和性别之间没有换行。让使用者瞅着很不舒服。

    这些问题我会在中篇中进行处理和讲解。

    呵呵。此次学习到此结束。下课了。

    该去陪我的女朋友 

     

     

  • 相关阅读:
    匿名内部类(八)
    局部内部类(七)
    局部内部类(六)
    成员内部类(五)
    成员内部类(四)
    静态内部类(三)
    静态内部类(二)
    内部类(一)
    zip解压破解
    爱剪辑软件使用
  • 原文地址:https://www.cnblogs.com/littlestone/p/1745033.html
Copyright © 2011-2022 走看看