...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]
————————————
[ ] 是取下标运算符!
—————— 希望对你有帮助