两个问题,关于C++的表达式与数组指针
1。inty=2;表达式y+=y*=2*y+1的值是?我的想法是①y=y*(2*y+1)=2*(2*2+1)=10;②y=y+(2*y+1)=10+(2*10+1)=31...
1。int y=2;表达式y+=y*=2*y+1的值是?
我的想法是①y=y*(2*y+1)=2*(2*2+1)=10;②y=y+(2*y+1)=10+(2*10+1)=31;
这么算哪里出错了?
2.设有变量定义int a[3][2]={1,2,3,4,5,6},(*p)[2]=a;表达式**(p+2)的值是?
这里的函数指针p不是指向长度为2的数组么,但是a的第一维长度为3啊,到底多维数组的指向是怎么用的?请高人实例解答下,答得好还有20分送上~ 展开
我的想法是①y=y*(2*y+1)=2*(2*2+1)=10;②y=y+(2*y+1)=10+(2*10+1)=31;
这么算哪里出错了?
2.设有变量定义int a[3][2]={1,2,3,4,5,6},(*p)[2]=a;表达式**(p+2)的值是?
这里的函数指针p不是指向长度为2的数组么,但是a的第一维长度为3啊,到底多维数组的指向是怎么用的?请高人实例解答下,答得好还有20分送上~ 展开
6个回答
展开全部
(1)>>>>>y+=y*(2*y+1)>>>>>y+=10>>>>y=12
(2)指针存的是地址而不是数组吧
(2)指针存的是地址而不是数组吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1. 连等式是先计算右边的.
y+=y*=2*y+1 //y=2
y+=(y*=5) [y*=5之后,y=10]
y+=10
y=20
2. p是怎么定义的呀, 初值呢?
y+=y*=2*y+1 //y=2
y+=(y*=5) [y*=5之后,y=10]
y+=10
y=20
2. p是怎么定义的呀, 初值呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
y+=y*=2*y+1
y+=(y*=2*y+1);
1.y=y*(2*y+1)=10;
2.y=y+y=20
2.int (*p)[2]<==>int p[][2];
int a[3][2] <==> int a[6];int *p=(int *)a; p[i] <==>a[i/2][i%2];
y+=(y*=2*y+1);
1.y=y*(2*y+1)=10;
2.y=y+y=20
2.int (*p)[2]<==>int p[][2];
int a[3][2] <==> int a[6];int *p=(int *)a; p[i] <==>a[i/2][i%2];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
都是基础问题。
1·等号算式是右优先的,也就是先 y*=2*y+1= 10;后y+=y =20
2·对于a来说,是多维数组,但地址存储里面就是占有6个int的顺序空间,所以指针p赋值得到就是一个地址,+2就是地址空间+2,和a是几维的没什么关系。
1·等号算式是右优先的,也就是先 y*=2*y+1= 10;后y+=y =20
2·对于a来说,是多维数组,但地址存储里面就是占有6个int的顺序空间,所以指针p赋值得到就是一个地址,+2就是地址空间+2,和a是几维的没什么关系。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.每条表达式运算完后都会返回一个变量,如y*=2*y+1运算完后返回y,之后在参加其他运算y+=y,这条表达式运算完也返回y变量
2一一对应,**(a+2)相当于a[2][0]
2一一对应,**(a+2)相当于a[2][0]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询