注册 登录
编程论坛 C++教室

c++小问题

一切皆安 发布于 2011-05-25 07:20, 305 次点击
#include<iostream>
using namespace std;
int main()
{
    int a[]={1,2,3,4,5,6},*p;
    p=a;
    *p=2;
    p++;
    *p=4;
    for(int i=0;i<6;i++)
        cout<<a[i]<<" ";
    return 0;
}
为什么  结果是 2 4 3 4 5 6
谁能给我解释一下
4 回复
#2
Pirelo2011-05-25 09:07
程序代码:
#include<iostream>
using namespace std;
int main()
{
    int a[]={1,2,3,4,5,6},*p;
    p=a;    //p指向数组a的第一个元素
    *p=2;   //对数组a的第一个元素赋值
    p++;    //p自增1指向数组a的第二个元素
    *p=4;   //将数组a的第二个元素的值赋为4
    for(int i=0;i<6;i++)
        cout<<a[i]<<" ";
    return 0;
}
#3
永会2011-05-25 10:13
p首先指向的是数组的第一个元素,赋值为2,自增之后给其赋值为4,即数组的第二个元素为4,后面的值就依次输出了.
#4
lcpwwj2011-05-25 14:13
呵呵,刚来看一下
#5
loveminttea2011-05-25 18:44
2楼正解!
1