| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1121 人关注过本帖
标题:我想输出字符指针数组,求大神看一下程序哪儿错了
只看楼主 加入收藏
神话嵌入式
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2014-10-27
结帖率:58.33%
收藏
已结贴  问题点数:15 回复次数:21 
我想输出字符指针数组,求大神看一下程序哪儿错了
char #include<stdio.h>
void main()
{
    *available_resource[]={"coulor monitor",
    "big disk",
    "cray"
    "on-line drawing routhing",
    "mouse",
    "keyboard",
    "power cable"};
    while(*(available_resource++)!=NULL)
        {
            while(*(*available_resource++)!='\0')
            printf("%c",*(*available_resource));
                }
}
Compiling...
CZhuanJiaBianChen_example.cpp
D:\vc6.0\Microsoft Visual Studio\MyProjects\CZhuanJiaBianChen\CZhuanJiaBianChen_example.cpp(81) : error C2105: '++' needs l-value
D:\vc6.0\Microsoft Visual Studio\MyProjects\CZhuanJiaBianChen\CZhuanJiaBianChen_example.cpp(83) : error C2105: '++' needs l-value
执行 cl.exe 时出错.
这是出的问题?
搜索更多相关主题的帖子: keyboard Microsoft drawing include power 
2014-11-25 14:07
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
这样是可以运行的

程序代码:
#include <stdio.h>


int main(int argc, char* argv[])
{
    char* available_resource[]={"coulor monitor",
                "big disk",    "cray","on-line drawing routhing",
                "mouse","keyboard",    "power cable","\0"};
    int i=0;
    while(available_resource[i][0]!='\0')
    {
        printf("%s\n",available_resource[i]);
        i++;
    }
    return 0;
}

DO IT YOURSELF !
2014-11-25 14:33
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:1 
版主说的对,另外这么写也可以

while(available_resource[i]!="\0")
    {
        printf("%s\n",available_resource[i]);
        i++;
    }

错误提示:++自增运算符必须使用左值,而数组名available_resource是指针常量,不能对其进行修改

[ 本帖最后由 书生等待 于 2014-11-25 14:57 编辑 ]
2014-11-25 14:40
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
这样写也可

程序代码:
int main(int argc, char* argv[])
{
    char* available_resource[]={"coulor monitor",
                "big disk",    "cray","on-line drawing routhing",
                "mouse","keyboard",    "power cable","\0"};
    char** p=available_resource;
    while(**p!='\0')
    {
        printf("%s\n",*p);
        p++;
    }
    return 0;
}

DO IT YOURSELF !
2014-11-25 14:44
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
以下是引用书生等待在2014-11-25 14:40:59的发言:

版主说的对,另外这么写也可以

while(available_resource!="\0")
    {
        printf("%s\n",available_resource);
        i++;
    }



经测试 这样写确实可以  开始还以为是字符串的比较 是不能用 = 的 所以加了个[0] 看起来是多此一举了

DO IT YOURSELF !
2014-11-25 14:46
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:0 
回复 4 楼 wp231957
嗯,一个是下标运算,一个是指针运算,这样一对比,更清晰了。
2014-11-25 15:00
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:0 
现在论坛不能发表情嘞,为了防止无意义回复吗?
2014-11-25 15:01
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 7 楼 书生等待
貌似只有水区可以

DO IT YOURSELF !
2014-11-25 15:03
神话嵌入式
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2014-10-27
收藏
得分:0 
以下三点不明白:
1.availzable_resource[i]在这表示地址吗?
2.字符指针数组available_resource[]每个元素是一个地址,为什么我把while(available_resource[i]!="\0")换成while(available_resource[i]!=NULL)就不行呢?
3."\0"和'\0'有什么区别,(在有些情况下)与NULL有等价关系吗?
求大神解释,非常非常感谢!
2014-11-26 09:24
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:2 
3."\0"和'\0'有什么区别,(在有些情况下)与NULL有等价关系吗?

答:"\0" 表示字符串  只有一个元素的字符串
    '\0' 表示一个字符
    NULL 在编译时 被按 0  处理

DO IT YOURSELF !
2014-11-26 09:28
快速回复:我想输出字符指针数组,求大神看一下程序哪儿错了
数据加载中...
 
   



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

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