| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 425 人关注过本帖
标题:指针数组输出问题
只看楼主 加入收藏
之乎者也
Rank: 1
等 级:新手上路
帖 子:8
专家分:4
注 册:2012-11-6
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:3 
指针数组输出问题
输入三个字符串在最后打印出来
#include <stdio.h>
const size_t BUFFER_LEN = 512; //数组buffer长度

int main(void)
{
    char buffer[BUFFER_LEN];  //存字符串
    char *ps[3] = { NULL };   //存储数组BUFFER中字符串的地址
    char *p = buffer;         //遍历数组BUFFER
    size_t index = 0;         //记录数组BUFFER中当前未用的元素位置
   
    for(int i = 0; i < 3; i++){
        printf("\nEnter %s messgaes\n", i>0 ? "another" : "a");
        ps[i] = &buffer[index];   //保存每个字符串开始位置的地址
        
        /*读取字符串并添加终止符*/
        while(index < BUFFER_LEN){
            if((*(p+index) = getchar()) == '\n'){
                *(p+index++) = '\0';
                break;
            }
            /*检查数组容量是否满*/
            if((index == BUFFER_LEN) && ((*(p+index-1) != '\0') || i<2)){
                printf("\nYou ran out of space in the buffer,");
                return 1;
            }
            index++;
        }
        }
        /*打印输入的字符串*/
        printf("\nThe strings you entered are:\n");
        for(int i = 0; i < 3; i++)
            printf("%s\n", ps[i]); //这里为什么用ps[i]而不是*ps[i]
        
        return 0;
}
搜索更多相关主题的帖子: another include 字符串 
2013-03-25 16:01
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:20 
ps[i]

ps么 肯定是指针数组 pointer array 那么 这个数组里面每个元素都是指针 好 我只要ps[1] 就得到了一个指针 反观*ps[1] 你说这是个啥。。。
2013-03-25 16:05
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
还有 代码风格很好

祝楼主学习愉快
2013-03-25 16:05
之乎者也
Rank: 1
等 级:新手上路
帖 子:8
专家分:4
注 册:2012-11-6
收藏
得分:0 
回复 2楼 zklhp
你好, 为啥char用p  int用*p 求解!谢谢
#include <stdio.h>

int main(void)
{
    char  a[] = "sdfsd";
    char *p = NULL;
   
    p = &a;
    printf("%s\n", p);
    return 0;
}

/*#include <stdio.h>

int main(void)
{
    int a = 5;
    int *p = NULL;
   
    p = &a;
    ++*p;
    printf("%d\n", *p);
    return 0;
}*/
2013-03-25 16:38
快速回复:指针数组输出问题
数据加载中...
 
   



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

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