84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
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;
含未定义行为,无法推断程序的输出。