CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

另一指针问题

楼主tyxsoft(bfmtyx)2004-09-04 18:01:59 在 C/C++ / C语言 提问

int   *p[n];    
  是定义一个元素为指针的数组,其中的指针都指向int变量  
  那么请问  
  char   *p[n];  
  是什么意思,谢谢 问题点数:20、回复次数:9Top

1 楼tyxsoft(bfmtyx)回复于 2004-09-04 18:02:52 得分 0

阻击顶一下先Top

2 楼ma100()回复于 2004-09-04 18:05:56 得分 2

是定义一个元素为指针的数组,其中的指针都指向char变量  
  Top

3 楼BlueGenie(蓝色妖精)回复于 2004-09-04 18:50:48 得分 4

给你看个好玩的:  
  char   (*p)[n]   ;  
  Top

4 楼yijiuqiliu(无名者之天下无敌)回复于 2004-09-04 19:30:29 得分 4

当然是字符类型,数组中每个元素都是字符指针。Top

5 楼wasoxi(我就是(没意思~~~))回复于 2004-09-04 19:39:55 得分 4

定义一个指向char*的数组Top

6 楼hcj2002(流浪者·躬自厚而薄责于人 )回复于 2004-09-04 19:49:57 得分 2

有意思Top

7 楼jk01dingxian(蓝光书虫~痛并快乐着~)回复于 2004-09-04 19:57:08 得分 4

呵呵BlueGenie定义的是一个2维数组.你的呢.也是一个2维数组.字符数组里都是一些字符指针.还不是2维数组吗.Top

8 楼tyxsoft(bfmtyx)回复于 2004-09-04 22:50:18 得分 0

谢谢大家Top

9 楼BlueGenie(蓝色妖精)回复于 2004-09-05 15:05:34 得分 0

我认为从语法上讲char*   p[n]是定义一个指向字符指针的数组,而char   (*p)[n]是定义一个指向一维数组的指针,如:  
   
  #include   <iostream>  
  #include   <cstdlib>  
  using   namespace   std   ;  
   
  int   main()   {  
          char*   p[4]   ;  
          char   (*p1)[4]   ;  
          cout   <<   "sizeof(p)   =   "   <<   sizeof(p)   <<   endl    
                    <<   "sizeof(p1)   =   "   <<   sizeof(p1)   <<endl   ;  
          system("PAUSE")   ;  
          return   0   ;  
                    }  
   
  输出:   sizeof(p)   =   16   ;   sizeof(p1)   =   4    
   
  从语意上认为char*   p[n]不仅可以作为二维数组,作为指向字符串(或字符)的指针数组可能更常见。  
  #include   <iostream>  
  #include   <cstdlib>  
  using   namespace   std   ;  
   
  int   main()   {  
          int   i,   j   ;  
          //   作为指针数组    
          char*   p[]   =   {   "aaaaa",   "bbbbbb",   "ccccc",   "dddddd"   }   ;  
          for(i   =   0;   i   <   sizeof(p)/sizeof(p[0]);   i++)    
                  cout   <<   p[i]   <<   '   '     ;  
          cout   <<   endl   ;  
                   
            //   作为二维数组  
            char   p1[5][4]   ;  
            char   *t   =   p1[0]   ;  
            for(i   =   0;   i   <   20;   i++)    
                      t[i]   =   'a'+   i   ;  
                       
            char   *p2[5]   ;    
            for(i   =   0;   i   <   5;   i++)    
                      p2[i]   =   p1[i]   ;  
                       
            char   (*p3)[4]   =   p1   ;  
            for(i   =   0;   i   <   5;   i++)     {  
                        for(j   =   0;   j   <   4;   j++)    
                                  cout   <<   p2[i][j]   <<   '-'   <<   p3[i][j]   <<   '   '   ;  
                        cout   <<   endl   ;  
                        }  
                         
          //   char   **p   作为二维数组  
          char   **p4   =   new   char*[5]   ;  
          for(i   =   0;   i   <   5;   i++)  
                  p4[i]   =   p1[i]   ;  
          for(i   =   0;   i   <   5;   i++)     {  
                        for(j   =   0;   j   <   4;   j++)    
                                  cout   <<   p4[i][j]   <<   '   '   ;  
                        cout   <<   endl   ;  
                        }  
             
          system("PAUSE")   ;  
          return   0   ;  
                    }  
  Top

相关问题

  • 怎么把指针变量的地址赋值给另一个指针变量
  • 一个很简单的问题:如何把一个指针的值赋给另外一个指针
  • 如何把一个指针本身的地址,赋予另一个指针作为指向的地址?
  • delphi如何将两个指针指向的内容合并后拷贝到另一个指针中?
  • 怎么在一个view中得到另一个view的指针?
  • 在CTreeView类中如何获取另一个CView类的指针
  • 怎样得到另一个View的指针
  • 菜问题:关于com里的接口指针是一个指向指针的指针还是一个指向指针的指针的指针?
  • 一个指针的问题
  • 一个指针的问题

关键词

  • 指针
  • 字符
  • 数组
  • 定义
  • 指向
  • 维数组
  • 元素
  • char
  • include

得分解答快速导航

  • 帖主:tyxsoft
  • ma100
  • BlueGenie
  • yijiuqiliu
  • wasoxi
  • hcj2002
  • jk01dingxian

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo