两个问题,关于C++的表达式与数组指针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;表达
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/29 00:27:01
![两个问题,关于C++的表达式与数组指针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;表达](/uploads/image/z/8786566-46-6.jpg?t=%E4%B8%A4%E4%B8%AA%E9%97%AE%E9%A2%98%2C%E5%85%B3%E4%BA%8EC%2B%2B%E7%9A%84%E8%A1%A8%E8%BE%BE%E5%BC%8F%E4%B8%8E%E6%95%B0%E7%BB%84%E6%8C%87%E9%92%881.int+y%3D2%3B%E8%A1%A8%E8%BE%BE%E5%BC%8Fy%2B%3Dy%2A%3D2%2Ay%2B1%E7%9A%84%E5%80%BC%E6%98%AF%3F%E6%88%91%E7%9A%84%E6%83%B3%E6%B3%95%E6%98%AF%E2%91%A0y%3Dy%2A%282%2Ay%2B1%29%3D2%2A%282%2A2%2B1%29%3D10%3B%E2%91%A1y%3Dy%2B%282%2Ay%2B1%29%3D10%2B%282%2A10%2B1%29%3D31%3B%E8%BF%99%E4%B9%88%E7%AE%97%E5%93%AA%E9%87%8C%E5%87%BA%E9%94%99%E4%BA%86%3F2.%E8%AE%BE%E6%9C%89%E5%8F%98%E9%87%8F%E5%AE%9A%E4%B9%89int+a%5B3%5D%5B2%5D%3D%7B1%2C2%2C3%2C4%2C5%2C6%7D%2C%28%2Ap%29%5B2%5D%3Da%3B%E8%A1%A8%E8%BE%BE)
两个问题,关于C++的表达式与数组指针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;表达
两个问题,关于C++的表达式与数组指针
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分送上~
两个问题,关于C++的表达式与数组指针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;表达
1. 你第一步分析没错,y*=2*y+1 这个表达式的值,就是y*=这个赋值的结果10 .
所以y+=y*=2*y+1相当于y+=10,注意这个时候y已经是10了,所以结果是20
2. p是指向长度为2的数组的指针,赋值p=a以后,p和a就是等效的了.现在拿a来讨论
a+2相当于&a[2],**(a+2)相当于**(&a[2])即*a[2]即a[2][0],现在知道答案了吧