日志档案

发表于 2006-12-18 13:28:28

2

标签: c语言  

c语言复习小记2

 

  今天把指针的内容看完了。感觉c语言的指针真的是博大精深啊!

      字符串指针在处理多个字符串的时候是非常方便的,例如有多个字符串需要处理的时候,那么可以设置一个字符指针数组,这个数据里面的每一个元素是一个指向字符串的指针,因此,通过这个字符指针数组,就可以实现对多个字符串的处理。字符串的指针实质上是字符串的首地址。同样字符串指针也可以作为函数的形参和实参,这样一来,如果和字符数组名做为函数的参数的情况加以组合的话,就有4种情况,可以根据不同的情况加以选用。字符串另外的一个作用就是用在命令行参数,这要从main函数的参数说起,因为main函数有两个参数,一个为命令行参数的个数argc,另外一个是命令行参数的指针(实质上是指针数组)。考虑如下的main函数形式:

       main(int argc, char *argv[])

       {

        ......

        }

        对于上述的main函数,函数执行的时候需要输入参数,这些参数一般有输入设备输入,第一个参数就是可执行程序的名字,接下来是函数需要的参数,这些参数就存放在argv[]中字符指针所指向的地址里面。

       还有一个内容就是指向指针的指针,说起来比较绕口。先来看一下指向指针的指针的定义形式:

       int **p;      //它的意思就是说p是一个指针,这个指针所指向的是一个指向整形变量的指针,好绕口啊,不过理解起来到不是很难。

       使用指针的时候一定要牢记,指针当前所指向的是那里,否则是很危险的,另外也不要定义太多的指针,否则指针满天飞,也容易出错。

       下面主要把对结构体的复习总结一下:

        对于数据类型,像int,double等我们都称为简单的数据类型,而有时,我们需要将一些简单的数据类型结合起来使用,这就产生了结构体数据类型,也就是说结构体数据类型是用户自己根据需要定义的。看一个例子

        struct book

        {

         char name[100];

          int page;

          float price;

                 };

上面的语句便是定义了一个结构体数据类型,在定义了这个类型之后,就可以用它来定义结构体类型的变量或者数据,例如:

        struct book  book1,book2,book[10];

虽然结构体类型的变量还有其他定义的方式,但是上面介绍的先定义结构体数据类型,在定义结构体变量是比较好的一种方式。可以把结构体数据类型的定义放在一个头文件里,这样我们就可以像定义简单数据类型变量那样定义结构体数据类型的变量了。

        同样,定义了结构体数据类型以后,我们也可以定义它的指针,使用上面的定义,我们定义如下指针

         struct book *p;

          p = &book1;

这个时候,p的值就是结构体变量book1的首地址,这个时候用p来引用变量book1中的成员是很方便的,比如p->price,当然也可以用book.price。一般来讲,不能对结构体变量直接引用,而只能引用其中的成员,并且其中的成员的地位和普通变量的一样。另外还有一点需要注意的是,结构体里面还可以包含结构体,这在应用有时是方便的。

欢迎访问skycanny的笔记(副站)

系统分类: 嵌入式   |   用户分类: DSP/算法   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(2349)    回复(3)  

投一票您将和博主都有获奖机会!

最新评论

  • skywalkzf

    2006-12-28 19:55:08

    相当同意,指针是C的精神也不为过.

  • 李国栋

    2006-12-30 12:41:08

    说真的我到现在还有点头痛

  • sugar

    2006-12-19 11:48:09

    同感!当时看指针的时候几乎是 看了两个月啊!

    其他所有的还没看这么长时间。