标题:c语言的一个程序不知道哪里出错了,编译显示3个错误
只看楼主
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
结帖率:57.14%
 问题点数:0 回复次数:6 
c语言的一个程序不知道哪里出错了,编译显示3个错误
#include "stdio.h"
void main()
{
    int a[]={2,3,4,5,6};
    int *p1;
    p1=a;
    printf("%d\n",p1+2);
    printf("%d\n",*(p1+2));

    p1=a+2;
    printf("%d\n",p1+2);
    printf("%d\n",*(p1+2));

    char *p2="computer\n";
    printf("%s\n",p2+2);
    printf("%s\n",*(p2+2));
}

搜索更多相关主题的帖子: computer include c语言 
2015-04-16 19:06
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:0 
前四个printf不带*表明输出地址,带*表明输出值,对后两个printf它们%s的格式符只需接收地址即输出从这里开始到第一个\0间字符串的,所以去掉*就好了

一片落叶掉进了回忆的流年。
2015-04-16 19:29
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
得分:0 
回复 2楼 诸葛欧阳
怎么还会有两个错误?
2015-04-16 19:34
wo_fire
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2015-4-16
得分:0 
printf(“%d”)不是输出整形吗?为什么要输出指针?
p2为什么没有赋予初始值?
2015-04-16 20:01
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
得分:0 
回复 4楼 wo_fire
定义p2的时候不是给他初始化了吗?
可以整形形式输出指针
2015-04-16 20:05
橄榄枝DD
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-4-19
得分:0 
c语言中是先定义 后使用;现在有两种改法。(1)把char  *p2="computer";这条语句挪到 int *p1;这条语句下面。(2)在 int *p1语句下 先定义 char *p2,然后你得把赋值语句 改成 p2="computer"; 这就OK了。
2015-04-19 16:48
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
得分:0 
回复 6楼 橄榄枝DD
多谢哈,这样可以哦!编译成功了
2015-04-20 19:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-444100-1-1.html




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

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