Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;指针和算术 #包括 使用名称空间std; int main(int argc,_TCHAR*argv[] { inta[10]={0,1,2,3,4,5,6,7,8,9}; int*aptr; aptr=&a[0]; a[2]=a[2]+3; a[3]=a[5]+a[4]; aptr++; (*aptr)--; (*(++aptr))++; cout_C++_Pointers_Math - Fatal编程技术网

C++ C++;指针和算术 #包括 使用名称空间std; int main(int argc,_TCHAR*argv[] { inta[10]={0,1,2,3,4,5,6,7,8,9}; int*aptr; aptr=&a[0]; a[2]=a[2]+3; a[3]=a[5]+a[4]; aptr++; (*aptr)--; (*(++aptr))++; cout

C++ C++;指针和算术 #包括 使用名称空间std; int main(int argc,_TCHAR*argv[] { inta[10]={0,1,2,3,4,5,6,7,8,9}; int*aptr; aptr=&a[0]; a[2]=a[2]+3; a[3]=a[5]+a[4]; aptr++; (*aptr)--; (*(++aptr))++; cout,c++,pointers,math,C++,Pointers,Math,让我们回顾一下代码中的每个步骤: #include <iostream> using namespace std; int main(int argc, _TCHAR* argv[]) { int a[10]={0,1,2,3,4,5,6,7,8,9}; int *aptr; aptr = &a[0]; a[2] = a[2] + 3; a[3] = a[5] + a[4]; aptr++; (*aptr)--;

让我们回顾一下代码中的每个步骤:

#include <iostream>
using namespace std;
int main(int argc, _TCHAR* argv[])
{
    int a[10]={0,1,2,3,4,5,6,7,8,9};
    int *aptr;
    aptr = &a[0];
    a[2] = a[2] + 3;
    a[3] = a[5] + a[4];
    aptr++;
    (*aptr)--;
    (*(++aptr))++;
    cout << a[1] << a[2] << a[3] << a[4] << *aptr << endl;
}
请注意,最后一行可能具有不同的行为,因为它包含后缀和前缀增量,但由于它们位于两个不同的值上,因此应该是安全的。

int main(int argc,_TCHAR*argv[])
int a[10]={0,1,2,3,4,5,6,7,8,9}; //initial state of your array
int *aptr;
aptr = &a[0]; //pointer on the first element
a[2] = a[2] + 3; //a[2]=5 now
a[3] = a[5] + a[4]; //a[3]=9 now
aptr++; //pointer on the second element
(*aptr)--; //decrement the value pointed by the pointer: a[1]=0 now
(*(++aptr))++; 
//first increment the pointer the increments the value pointed by the new pointer so a[2]=6 now
{ inta[10]={0,1,2,3,4,5,6,7,8,9}; //a是一个10整数的数组。 int*aptr; //aptr是指向int的指针。 aptr=&a[0]; //aptr指向数组的第一个元素,即a[0] a[2]=a[2]+3; //将3添加到[2],即数组的第三个元素以获得“5”,并将其放回[2]中。 //所以‘a’是{0,1,5,3,4,5,6,7,8,9} a[3]=a[5]+a[4]; //你取第六和第五个元素,把它们加起来,放到第四个元素里。 //所以‘a’是{0,1,5,9,4,5,6,7,8,9} aptr++; //aptr指针递增,因此现在它指向数组的第二个元素,即[1]。 (*aptr)--; //首先解引用aptr指针以获取[1],然后将其递减。 //所以‘a’是{0,0,5,9,4,5,6,7,8,9} (*(++aptr))++; //aptr指针首先递增,因此现在它指向第三个元素,即a[2]。 //然后取消对aptr指针的引用,得到一个[2],该值随后递增。 //所以‘a’将是{0,0,6,9,4,5,6,7,8,9},aptr指向a[2] 库特
aptr
正在引用
a[0]

int a[10]={0,1,2,3,4,5,6,7,8,9};
int *aptr;
aptr = &a[0];
移动
aptr
a[1]

a[2] = a[2] + 3;
//  a[2] == 5
a[3] = a[5] + a[4];
// a[3] == 9
aptr++;
aptr
之前的*现在意味着您正在修改它引用的任何对象的值。因此
aptr
指向
a[1]
,我们将其值减少1。因此
a[1]
等于0

(*aptr)--;
让我们把它分解。
(++aptr)
意味着让我们把指针从
a[1]
移动到
a[2]
(*(++aptr))
现在说让我们关注
aptr
的值。我们现在知道
a[2]==5
。最后
(*(+++aptr)+
说让该值增加1。所以
a[2]==6
。请记住,
*aptr
因此现在也等于6

(*(++aptr))++;
cout
(*(++aptr))++;
cout << a[1] << a[2] << a[3] << a[4] << *aptr << endl;