请大家帮我分析一下C++题

来源:百度知道 编辑:UC知道 时间:2024/05/25 07:28:32
#include "iostream.h"
#include "string"
void main()
{
static int str[]={1,2,3,4,5,6,7,8,9,0};
int *p=str;
*(p+5)+=7;
cout<<*p;
}
答案是多少?为什么呢?

答案还是1,因为指针 p 的值没有发生变化,
cout<<*p; 实际相当于输出 str[0]的值,也就是1

答案是1。
*p = str; // p指向str的第一个数字str[0]
*(p+5) // 是指从1往后的第五个数字str[5]
*(p+5)+=7 // str[5]+=7,
*P=str[0]=1 and *(p+5)=str[5] =13

p.s. 楼上的骗人!! p->str[0], (p+5)->str[5], *(p+5)=6+7=13

指针指向数组的首地址,只要第一项没改,*p的值就不会变

1啊,前面的指令都没用

这个 程序 是要什么 结果~~~~~根本都看不懂~~~~~~

看来 水平还是不够啊~~~~~

狂汗~~~~~

*p

*(p+0)

p[0]

str[0]

都指向同一个值