为您找到"
...a[]={1,2,3,4,5,6},*p=a; 求表达式(*p++)++**++p的
"相关结果约100,000,000个
是2 由于*p=a,p指向了a的第一个元素a[0] (*++p)++ 这个先执行++p p指向a[1] *p就是a[2] 转化为a[2]++,由于++先算表达式值在自加1,所以这个表达式的值为2
值为2. *p=a;语句之后,p指向的是数组a的第0个元素,也就是a[0]; (*++p)++表达式:根据运算符优先级,先计算括号内内容,++p,首先自增p,此时p指向第1个元素,即指向a[1];然后通过*得到a[1];后置++不立即改变a[1]的值(值为2),而在此表达式之后a[1]值为3.
定义inta[]={1,2,3,4,5,6},*p=a;求表达式(*p++)++**++p的值。求详解,讲清每一步的变化,要涉及到符号的优先级和结合性。... 定义 int a[]={1,2,3,4,5,6},*p=a; 求表达式(*p++)++**++p的值。 求详解,讲清每一步的变化,要涉及到符号的优先级和结合性。 展开
文章浏览阅读291次。该题考察指针和运算符的使用。根据题意,指针 `p` 指向数组的第一个元素,即 `p=&a[0]`,则 `*p=1`。根据 C 语言运算符优先级,`++` 的优先级高于 `*`
但是在第四行,p指向的地址没有改变,但是*p的值发生了变化,这是由于(*p)等价于x[0](数组下标为0,位序是1),所以表达式++ 相当于是使数组第一项数据元素自增。
文章浏览阅读220次。根据提供的引用内容,a是一个数组,p是指向a数组的指针,i是一个整数。在C语言中,数组名a代表数组的首地址,即a的地址。因此,a[p+a]是不正确的写法,因为p是指向a数组的指针
在这个表达式中,*p 的值是 a 数组的第一个元素的值,也就是 1。 这里,a 是一个整型数组,p 是 a 的指针,p 是对指针 p 所指向的内存中的值取值。因此,在这个表达式中,p 的值是 a 数组的第一个元素的值,也就是 1。 举个例子,假设 a 数组中存储的内存地址分别是 1000、1004、1008、1012、1016 和 1020 ...
#include using namespace std; int main() { int a[]={1,2,3,4,5}; int* p[]={a,a+1,a+2,a+3}; int **q = p; cout<<"a:"<
a 是二维数组名, 在参与运算时候会退化成指针. a这个指针的值和 二维数组中第00个元素的地址一样,即 a == &a[0][0] (注意这里很重要是在数值上), *a表示第0行的行首地址, 那第0行首地址跟a[0][0]的地址也一样, 所以 在数值上 a == &a[0][0] = *a ,但是他们表示的含义不一样.
由于 p 指向了数组 a 的第一个元素,所以表达式 (*p) 的值就是 a 数组的第一个元素的值,也就是 1。 ### 回答2: 表达式(*p)的值是1。 根据给定的代码,int a[]={1,2,3,4,5,6}定义了一个包含六个元素的整型数组a,数组中的元素分别为1、2、3、4、5和6。