| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2212 人关注过本帖, 3 人收藏
标题:[原创] 关于类型匹配!!!
只看楼主 加入收藏
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
结帖率:33.33%
收藏(3)
 问题点数:0 回复次数:8 
[原创] 关于类型匹配!!!
一直想写,但是又不想动......今天下定决心,一边吃饭一边写...  其实要写的东西还是有的,比如继承下的作用域,构造函数,析构这些......今天主要写下自己复习的东西--类型匹配(翻了一些书),有错的地方望大家指出并更正..
   个人认为,关于类型匹配并没有太多,主要有三种情况:
 1) 常规的类型匹配
        #include<iostream>
       using namespace std;
       int main(){
          int a=2;
          int b=a;   //int 匹配 int  这是毫无疑问的. 同样内建的类型都是这样匹配.
 /*---加上指针------*/
          int *p=&a;   //情况和上述一样,匹配它所指的类型..
         return 0;
       }
  2) 对于数组的匹配..我自己叫退化匹配(方便理解)
 关于数组退化,就是数组名在初始化别的变量是会自动退化成指针...
    #include<iostream>
    using namespace std;
    int main(){
         int a[5];   //实际是int *a
         int *w=a;   //没问题

     /*-----一维数组的情况很简单,但是要注意的是退化后数组就失去边界了...----------*/
    /*------对于二维数组,在数组退化时只有第一维退化(好像没这种第一维的说法,此处为了便于理解),第二维任保持大小,至于原因可以自己去思考一下,给个提示:二维数组在内存中也是线性排列....------*/
         
        int b[5][10];   //实际是 int (*)[10]; (1)
        int* p= b[0];   /*这里第一维退化成(1)的那种类型,然后去内容后(把b[0]看成整体s)变成 int s[10],类比于int* s,于是匹配.*/
        
        return 0;
      }
 3) 指针方面的类型匹配
     #include<iostream>
    using namespace std;
    int main()
    {
       int* p;
       int* s=p;    //没问题,同类型匹配
       const int* w=p;  //没问题,因为加上const,并不会影响p,反而保护了p
       int* a= w; //错误,因为这样做破坏了w的const性
        
     /*-----复杂一点的-----*/
       int * a_[20];  //实际是int * *a_
       int ** q= a_;   //没问题
        const int* *w_=a_;  //错误,因为w_指向的是const int* ,而a_指向是int*,类型不匹配

        int * const * _w_=a_;  /*没问题,因为_w_指向的是int* const,而a_指向是int*,那类型怎么匹配呢?这里就是一些专家所推荐的写法问题,先看这个: const int x 也是 int const x .. 好,但是在上面的指针情况下,就体现了专家推荐的第二种写法..
  我先把int* 看成整体s, 那int* const 就是 s const,  我们前面说了,const 性的指向非const 的不会带来问题..而const int* 就是int const * ,而不是 int * const,所以是不会匹配的!!!*/
      return 0;
     }
   
  好了,就写这么多,吃饭了.........
搜索更多相关主题的帖子: 类型 
2007-12-30 18:54
xinle
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-11-10
收藏
得分:0 
总结的不错,不过“类型匹配”这一词我怎么总觉得怪怪的。
2007-12-30 19:44
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
收藏
得分:0 
学习了。顶一下。

天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2007-12-30 20:05
a19870502
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2007-10-31
收藏
得分:0 
顶顶顶顶顶顶!!!!
2008-01-07 23:00
wch27149
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-10-24
收藏
得分:0 
字符串是怎么匹配的呢

我叫wch,编号27149
感谢little monkey同学。
2008-01-08 00:51
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
有字符串类型么?

樱花大战,  有爱.
2008-01-08 01:08
mbstorm
Rank: 1
等 级:新手上路
帖 子:166
专家分:0
注 册:2008-10-31
收藏
得分:0 
楼主厉害
2008-11-01 23:00
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
中学的家底都被人翻出来了,最近

2008-11-01 23:24
slongta
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2009-6-2
收藏
得分:0 
诶···看不懂了,嘿嘿 得学学

点上灯笼,跟着萤火虫,在夜里,找梦……
2009-12-29 22:48
快速回复:[原创] 关于类型匹配!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035504 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved