#include <iostream>
#include <iomanip>
using namespace std;
#define maxn 100
void main11()
{
//const auto maxn = 100;
long primes_i[maxn] = { 2, 3, 6 };
long trail_i = 5;
auto count_i = 3;
auto found_i = false;
do
{
trail_i += 2;
found_i = false;
for (int i{}; i < count_i; i++)
{
found_i = (trail_i % * (primes_i + i)) == 0;
if (found_i)
break;
}
if (!found_i)
{
*(primes_i + count_i++) = trail_i;
}
} while (count_i < maxn);
for (int i{}; i < maxn; i++)
{
if (i % 5 == 0)
{
cout << endl;
}
cout << setw(10) << *(primes_i + i);
}
cout << endl;
system("pause");
}
其中
*(primes_i + count_i++) = trail_i;
是什麼意思
primes-i是數組的首地址(指針),與count-i相加表示地址(指針)進行加法運算,也就是獲取數組其他元素的地址(指針)。如果count是1,那麼primes_i + count_i++的結果就是得到數組的第二個元素的地址(指針),在此句話執行結束之後count再加1,進而繼續操作數組下一個元素
那麼整個語句的意思就是給long數組中的某個元素進行賦值,結合循環完成對數組所有元素逐個賦值