这样为什么编译不过呢?

这样为什么编译不过呢?

#include <iostream>

using namespace std;

//定义main函数

int main()

{

//定义数组和数组指针

    char a[8]="abcdcba";

    char *p,*q;

    int i=0;

//通过指针循环倒序输入5个数组元素值

    *p=a;

    *q=a+6;

    while(p!=q) {

        if(*p!=*q){

        i=1;

        break;

        }

        p++;

        q--;

    }

//顺序输出数组元素值

    if(!i)

        for(int c=0;c<7;c++)

            cout<<a[c];

            

    

    return 0;

}



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
慕工程8234662 2018-07-27 17:28:43

老师 a和a+6不是元素值吗,为什么是元素指针?

  • 你好,a是属于名称,同时也是一个指针常量,指向数组的第一个元素,同学可以将它打印出来看一看,而a+6指向了数组的第7个元素,关于数组指针老师在课程中有详细讲解,建议同于学可以回过头多听视频,温故知新,帮助进一步的理解消化哦,祝学习愉快~
    2018-07-27 19:40:31
imooc_澈 2018-05-15 18:42:12

你好,a和a+6都为数组元素指针,应该分别赋给p和q,而不是*p和*q,修正如下图红框所示:

http://img1.sycdn.imooc.com//climg/5afab9570001d53c02890354.jpg

如果解决了你的问题,请采纳,祝学习愉快~

  • 老师 a和a+6不是元素值吗,为什么是元素指针?
    2018-07-27 17:29:07
  • a 是数组的首地址, a+6 当然也是地址啊 a[0]是数组元素值 a[6]是数组元素值
    2018-12-19 09:47:03
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
C++零基础入门 热门编程语言 二级考试必备
  • 参与学习       529    人
  • 提交作业       110    份
  • 解答问题       594    个

无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师