若有定义语句: int a[]={1,2,3,4},y,*p=&a[1]; 则执行语句“y=*p++;”之后,变量y的值为()
时间: 2024-04-25 12:26:34 浏览: 20
根据该定义语句,变量a是一个包含4个元素的int型数组,其元素分别为1,2,3,4。变量p是一个指向a[1]元素的指针,即p指向数组a的第二个元素,也就是2。
执行语句“y=*p++;”时,由于是先执行*p,再进行指针自增操作,因此此时y的值为2,p的值指向数组a的第三个元素,即a[2]=3。
因此,执行完这条语句后,变量y的值为2。
相关问题
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; 语句之间的区别是,前者将整型值赋值给指针变量,而后者将整型变量的地址赋值给指针变量。
已知:int i,j=7,*p=&i;,则与i=j;等价的语句是( ) A. i=**p; B. p=j; C. p=&j; D. *p=j;
正确的选项是 D. `*p=j;`,与 `i=j;` 等价。
首先,定义了整型变量 `i` 和 `j`,并将变量 `j` 的值初始化为 7。还定义了一个指向整型变量 `i` 的指针 `p`,并将其初始化为变量 `i` 的地址。
要将变量 `j` 的值赋给变量 `i`,可以使用赋值语句 `i=j;`。但是,这里需要找到一个与 `i` 等价的表达式,然后将变量 `j` 的值赋给这个表达式。
因为指针 `p` 指向变量 `i` 的地址,所以可以使用 `*p` 来表示变量 `i`。因此,可以使用赋值语句 `*p=j;` 将变量 `j` 的值赋给指针 `p` 所指向的内存地址,即变量 `i` 的值。这样,就实现了将变量 `j` 的值赋给变量 `i` 的效果。
因此,选项 D 正确。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)