84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
ringa_lee
若指针p指向数组的第i个元素,则p+n,n+p,p-n将分别指向地i+n,i+n,i-n个元素。在这里,p指向的元素是数组,所以p+1将指向数组中的下一个数组。这与其他情况时(如指向int时)的行为是一致的。
注:你的代码中的cout那行含未定义行为。参照
设有 int array[10][20], (*p)[20] = array;
int array[10][20], (*p)[20] = array;
std::cout << p++;的输出与std::cout << p; 相同,将输出&array[0]。
std::cout << p++;
std::cout << p;
&array[0]
std::cout << ++p;的输出与std::cout << p+1; 相同,将输出&array[1]。
std::cout << ++p;
std::cout << p+1;
&array[1]
std::cout << p++; std::cout << ++p;将输出&array[0]和&array[2]。
std::cout << p++; std::cout << ++p;
&array[2]
std::cout << p++ << " " << ++p;含未定义行为,无法推断程序的输出。
std::cout << p++ << " " << ++p;
若指针p指向数组的第i个元素,则p+n,n+p,p-n将分别指向地i+n,i+n,i-n个元素。
在这里,p指向的元素是数组,所以p+1将指向数组中的下一个数组。这与其他情况时(如指向int时)的行为是一致的。
注:你的代码中的cout那行含未定义行为。参照
设有
int array[10][20], (*p)[20] = array;
std::cout << p++;
的输出与std::cout << p;
相同,将输出&array[0]
。std::cout << ++p;
的输出与std::cout << p+1;
相同,将输出&array[1]
。std::cout << p++; std::cout << ++p;
将输出&array[0]
和&array[2]
。std::cout << p++ << " " << ++p;
含未定义行为,无法推断程序的输出。