| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2210 人关注过本帖, 3 人收藏
标题:[原创] 关于类型匹配!!!
取消只看楼主 加入收藏
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
结帖率:33.33%
收藏(3)
 问题点数:0 回复次数:1 
[原创] 关于类型匹配!!!
一直想写,但是又不想动......今天下定决心,一边吃饭一边写...  其实要写的东西还是有的,比如继承下的作用域,构造函数,析构这些......今天主要写下自己复习的东西--类型匹配(翻了一些书),有错的地方望大家指出并更正..
   个人认为,关于类型匹配并没有太多,主要有三种情况:
 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
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
有字符串类型么?

樱花大战,  有爱.
2008-01-08 01:08
快速回复:[原创] 关于类型匹配!!!
数据加载中...
 
   



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

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