搜索

...int b[]={2,4,6,8}; int *c=b; *(c+1)=a[1]+a[2]; c=a; *(a+1...

发布网友 发布时间:2024-10-24 01:58

我来回答

6个回答

热心网友 时间:2024-10-26 00:44

#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int a[]={1,2,3,4,5,6,7};
int b[]={2,4,6,8};
int *c=b; //通过传址,c和b一样了
*(c+1)=a[1]+a[2]; //即c[1]=2+3=5,因此此时b[1]=5
c=a; //所以a和c一样了
*(a+1)=b[1]+b[2];//即a[1]=5+6=11,而上一行中a和c一样,因此c[1]=11
cout<<a[1]<<endl;
cout<<b[1]<<endl;
cout<<c[1]<<endl;
system("pause");
return 0;
}
不懂可以问我

热心网友 时间:2024-10-26 00:41

int *c=b; *(c+1)=a[1]+a[2];

这里你理解了,结果数组b的改变为{2,5,6,8}

c=a; 指针c指向了a首元素
*(a+1)=b[1]+b[2];

*(a+1)即表示a[1],也是c[1],两者是同一地址上的值,为b[1]+b[2]=5+6=11.

热心网友 时间:2024-10-26 00:41

首先你明白c是数组指针,数组的改变可以通过数组名或者指针来改变
int a[]={1,2,3,4,5,6,7}; int b[]={2,4,6,8}; int *c=b; *(c+1)=a[1]+a[2];此时*(c+1)=c[1]=2+3=5的,同时c指向b那么实际就是b[1]=*(c+1)=5了。
c=a;*(a+1)=b[1]+b[2];此时c变成了指向a的指针,则*(a+1)=*(c+1)=b[1]+b[2]=5+6=11;
不懂再追问,望采纳,谢谢!

热心网友 时间:2024-10-26 00:40

int *c=b; *(c+1)=a[1]+a[2]; 先执行这步后 b[1] = 5;
b[2] = 6;
c=a; *(a+1)=b[1]+b[2];再执行这步 a[1] = b[1] + b[2] = 5 + 6 = 11;
我猜你这程序是最后输出的的吧

热心网友 时间:2024-10-26 00:43

*(c+1)=a[1]+a[2]; 即b[1]=a[1]+a[2]=5.此时b[1]已经成为5了,后面*(a+1)=b[1]+b[2];
*(a+1)=5+6=11

热心网友 时间:2024-10-26 00:45

int a[]={1,2,3,4,5,6,7};
int b[]={2,4,6,8};
int *c=b; //c指向a数组,也就是c=b[0]
*(c+1)=a[1]+a[2]; //b[1] = 2 + 3 =5
c=a; // c指向a数组,也就是c=a[0]
*(a+1)=b[1]+b[2]; //*(a+1) = a[1] = 5+6 =11
cout<<a[1]<<endl;
cout<<b[1]<<endl;
cout<<c[1]<<endl; //c[1] 的含义是 c 偏向的下个int 也就是a[1]
————————————
[ ] 是取下标运算符!
—————— 希望对你有帮助
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top