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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 菜鸟de无奈 于 2014-3-25 13:12 编辑

#include <stdio.h>

int main()
{
        char *p[6]; //定义指针数组
        
        
        for(int i = 0;i<6;i++) //将6个字符串保存在指针数组
        {
                printf("请输入第%d个字符串\n", i+1);
                scanf("%s", p);
               
        }
        
        printf("%s", *(p[2]));// 打印出输出的第3个字符串
        
        return 0;
               
}

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

6 个回复

倒序浏览
改成这样试试:

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     char p[6][16]; //定义指针数组
  5.    
  6.    
  7.     for(int i = 0;i<6;i++) //将6个字符串保存在指针数组
  8.     {
  9.         printf("请输入第%d个字符串\n", i+1);
  10.         scanf("%s", p[i]);
  11.         
  12.     }
  13.    
  14.     printf("%s", p[2]);// 打印出输出的第3个字符串
  15.    
  16.     return 0;
  17.    
  18. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
打印有问题,换成p[2],看看
回复 使用道具 举报
本帖最后由 脸皮猴 于 2014-3-22 16:48 编辑
  1. </blockquote></div><div class="blockcode"><blockquote>
  2. #include <stdio.h>

  3. int main()
  4. {
  5.         char *p[6]; //定义指针数组
  6.         
  7.         
  8.         for(int i = 0;i<6;i++) //将6个字符串保存在指针数组
  9.         {
  10.                 printf("请输入第%d个字符串\n", i+1);
  11.                 p[i] = malloc( 10 );//这句程序意思是malloc函数申请10个字节的内存,返回一个指针赋值给p[i],p[i]才能接收字符串
  12.                 scanf("%s", p[i]);//p[i]是野指针,没有初始化所以会出错!指针必须要初始化。上面那句是初始化指针的一种方式
  13.                                         //起始初始化指针就是让指针具体指向哪里,你要自己要先设置好!才能用!
  14.                
  15.         }
  16.         
  17.         printf("%s", *(p[2]));// 打印出输出的第3个字符串
  18.         
  19.         return 0;
  20.                
  21. }
复制代码




评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报

printf("%s", *(p[2]));// 打印出输出的第3个字符串

我觉得这里的星号应该去掉吧
回复 使用道具 举报
yaozeyang_2014 发表于 2014-3-22 18:40
printf("%s", *(p[2]));// 打印出输出的第3个字符串

我觉得这里的星号应该去掉吧 ...

哈哈·没注意下面的那个星号。星号要要去掉,确实要去掉·
回复 使用道具 举报

谢谢大猴指点。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马