有定义:int a[ ]={1,3,5,7,9},*p=a;, 则语句* (p+=2);执行后的值为
时间: 2023-02-06 12:10:58 浏览: 332
执行这条语句后,p 的值将变为 2,因此 *(p=2) 的值为 a[2] 的值,即 5。
这条语句将 p 赋值为 2,然后访问 p 所指向的内存地址中的值。在这个例子中,p 指向 a 数组的第三个元素,所以 *(p=2) 的值为 5。
在这条语句中,p 是一个指针,它指向 a 数组的第一个元素。由于 p 是一个指针,所以 *p 表示 p 所指向的内存地址中的值。因此,*p 的值为 a[0] 的值,即 1。
在这条语句中,p 被赋值为 2,因此 p 指向 a 数组的第三个元素,即 5。因此,*(p=2) 的值为 5。
相关问题
设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是______。 A *p=*q; B p=q; C *p=&n1; D p=*q;
与`n2=n1;`语句等价的是`*p=*q;`语句。
`*p`表示指针p指向的变量的值,`*q`表示指针q指向的变量的值,因为`q=&n1`,所以`*q`就是n1的值,因为`p=&n2`,所以`*p`就是n2的值,所以`*p=*q`就相当于`n2=n1`。
其余选项的意义如下:
- A *p=*q; 表示将指针q指向的变量的值赋值给指针p指向的变量。
- B p=q; 表示将指针q的值赋值给指针p。
- C *p=&n1; 表示将指针p指向n1的地址。
- D p=*q; 表示将指针q指向的变量的值赋值给指针p。
int a=0;int *p = a; 和 int *p = &a; 这里int *p=a;与int *p=&a;有什么区别?
在C++中,int a=0; 表示定义了一个整型变量a并将其初始化为0。
而 int *p = a; 表示将整型变量a的值赋值给一个指向整型数据的指针p。但是这是错误的,因为指针变量p需要存储一个地址,而不是一个整型值。因此,这个语句会编译失败。
相反,int *p = &a; 表示将整型变量a的地址赋值给一个指向整型数据的指针p。这是正确的用法,并且p指向的是整型变量a的地址。
因此,int *p = a; 和 int *p = &a; 语句之间的区别是,前者将整型值赋值给指针变量,而后者将整型变量的地址赋值给指针变量。