A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhudong100 中级黑马   /  2015-10-25 10:15  /  1613 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. //二维字符指针的应用
  2. int main(int argc, const char * argv[]) {
  3.     char (*ch)[3] = {
  4.         {'a','b','\0'},
  5.         {'c','d','\0'},
  6.         {'e','f','\0'},
  7.     };
  8.     printf("%c\n",*(*(ch+1)+1));
  9.     return 0;
  10. }
复制代码

上面的例子错误在哪里?该如何改正?

7 个回复

倒序浏览
    char c[3][3]={         {'a','b','\0'},         {'c','d','\0'},         {'e','f','\0'},     };     char (*ch)[3] ={&c[0],&c[1],&c[2]};     printf("%c\n",*(*(ch+1)+1));我改成这样了 有一个warning  可以运行
回复 使用道具 举报
二维数组指针不能这样初始化,你可以
char a[3][3] = {
        {'a','b','\0'},
        {'c','d','\0'},
        {'e','f','\0'},
    };
    char (*ch)[3]=a;
回复 使用道具 举报
学习一下
回复 使用道具 举报
Brisingr 发表于 2015-10-25 11:17
二维数组指针不能这样初始化,你可以
char a[3][3] = {
        {'a','b','\0'},

明白了,谢谢你!
回复 使用道具 举报
孙明海 发表于 2015-10-25 11:04
char c[3][3]={         {'a','b','\0'},         {'c','d','\0'},         {'e','f','\0'},     };    ...

复习下指向二维数组指针的定义后,明白了。
回复 使用道具 举报
多看看 笔记...
回复 使用道具 举报
0 0看不懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马