问题是找到以下程序的输出:
#include <iostream>
using namespace std;
int main() {
int arr[]={6,3,8,10,4,6,7};
int *ptr=arr,i;
cout<<++*ptr++<<'@';
i=arr[3]-arr[2];
cout<<++*(ptr+i)<<'@'<<'\n';
cout<<++i+*ptr++<<'@';
cout<<*ptr++<<'@'<<'\n';
for(;i>=0;i-=2)
cout<<arr[i]<<'@';
return 0;
}
上述程序的输出是:
7@11@
6@8@
11@3@
我知道什么时候像这样使用指针:*ptr=&var;
它将变量 var
的地址存储在指针变量 ptr
.
这些是我的问题:
*ptr=arr[];
是做什么的?其中ptr
声明为整数,arr
是整数数组?如果
ptr
和a
被声明为整型变量,*ptr=a;
会做什么?
最佳答案
What does
*ptr=arr;
Whereptr
is declared as an integer andarr
is an integer array?
设置ptr
指向数组arr
的第一个元素。在 What is array decaying? 中阅读更多内容
声明如下:
int arr[]={6,3,8,10,4,6,7}; // declare array 'arr'
int *ptr // declare pointer to `int` 'ptr'
What does
*ptr=a;
do ifptr
anda
are declared as integer variables?
你说的,在代码中是这样的:
int ptr, a;
*ptr=a;
这将产生错误,如下所示:
prog.cc: In function 'int main()':
prog.cc:4:4: error: invalid type argument of unary '*' (have 'int')
4 | *ptr=a;
| ^~~
关于c++ - 指针变量有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55442403/