c语言中的几个容易混淆问题

c语言中的几个容易混淆问题

ID:32192657

大小:47.89 KB

页数:3页

时间:2019-02-01

c语言中的几个容易混淆问题_第1页
c语言中的几个容易混淆问题_第2页
c语言中的几个容易混淆问题_第3页
资源描述:

《c语言中的几个容易混淆问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、关于指针,数组,二级指针,数组指针,指针数组首先,在C语言中,最难的就是定义变量,给变量赋值。其实所有的C程序拉出来看到的都是在定义变量,给变量赋值,中间的程序通过运算得到的结果,也可以算是给变量赋值。                (一)先说定义变量:                  因为变量名都是自己定义的标示符,然后最重要的就是变量的类型了。虽然大多C语言书上都列举出了众多的数据类型,但是个人理解,那些都是最基本的一些东西,其实还有很多中类型我们经常遇到,却不知道这些还是数据的类型。                一,指针类型;                  int*  

2、  ,short*  ,char*,    int**,char**,  longint****************;                这些都是指针类型,很显然,可以看出指针类型就是在基本数据类型前面加个*  ,  例如定义一个指针变量,                int*    p;        这个变量p,就有两种含义,第一是,这是一个指针变量,第二是他指向int类型。    我们都知道对于32位pc机,  指针变量都是四个字节。      int**  p;对于变量p,  也有两个含义,第一这是一个指针变量,第二,它指向一个int*类型.        

3、          二,数组类型。                这里估计,有人就质疑了,C语言里面还有数组类型吗?  有。并且我们一直在写,一直在用,我们一直不知道,是因为C语言的书写方式导致我们不知道有这种类型。  对于一个一维数组,  int  a[10];  C语言的书是这样解释这个东西的,这是个一维数组,也就是一次性定义了十个变量。  在内存中呈线性排列。。。。。。其实我个人理解这个东西应该这样定义,这是一(个包含10个int  元素的类型的)  变量。我们在描述一个变量的时候,总说,这是一个XXX类型的变量,所以在这里对于int  a[10];应该这样描述,这是一个有10

4、个int元素的类型的  变量a;  所以写成  这样  int[10]      a;      这是一个变量但是它包含十个元素,这是不是跟我们学过的一个东西特别像?  结构体,结构体不就是包含里XXX元素的类型,然后用这种类型定义了一个变量,叫做结构体变量。  C语言给结构体类型起名字了,却没给数组类型起名字,所以我们不知道。但是定义数组的时候写成 int[10]    a;这样很多编译器都编译不通过,或者说没有编译器认识它,之所以这样写,只是要明白,数组的原理,因为后面对于能正确理解数组指针,至关重要。。。。                三,指针数组;             

5、 指针数组很简单,就是int*  a[10];    类型换了一下而已,按照上面的解释更直观一点写成int*[10]      a;  这样,就可以解释为,定义了(一个包含10个指针类型元素的)这种类型的变量    a;              四,数组指针,              若看完了上面对于数组类型的解释以后,对于数组指针是不是已经很简单了。定义一个指针数组类型的变量  是   int*  a[10];前面说了,更直观的写成:    int*[10]      a;    那么定义一个指针变量,就是在原有类型前面加一个*,  也就是int*[10]*    p;  但是

6、C语言里面不能这样写,规定要把[10]  写到后面,所以就成了int*  *  p[10];  但是现在这样就有个问题了,之前有个[10]在中间隔开,倒是可以区别,(int*[10])*    p;  现在[10]  写到了后面,无法区别这两个*,到底属于那边的,加空格没作用,所以只能加最有权威的分隔符()  那么就成了int*  (*p)[10];  这里定义了一个指向(有10个int*类型元素的数组)的类型的变量  p;        不好意思,这里有些太绕口,不好理解,确实不好理解,之所以不好理解,是因为我们书写习惯了,看习惯了目前C的这种书写形式,对一些东西根深蒂固。就像很多

7、新人最开始学习指针的时候都是这样定义的,int    *p;  这样写虽能编译通过,但是他已经把指针理解错了,指针不就是一个普通变量,int*  p;  就是一个变量p,类型是int*类型。。......对于学习C语言的新人,要永远记住,对于任何变量,都是某某某类型  的  一个变量。    这个类型可以是任何类型。不光是书上的那几种类型,有很多类型都是我们自己定义的,例如int********  这种类型。            上面说了这么多,最重要的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。