Можно ли пройти массив с указателем на известную позицию в C?

Я достиг этого, используя всего лишь два шага:

Шаг 1: перейдите в AndroidManifest.xml и добавьте параметр в тег - android: parentActivityName = ". home.HomeActivity"

example:

 <activity
    android:name=".home.ActivityDetail"
    android:parentActivityName=".home.HomeActivity"
    android:screenOrientation="portrait" />

Шаг 2: в ActivityDetail добавьте действие для предыдущей страницы / активности

:

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
       case android.R.id.home:
           onBackPressed();
           return true;
    }
    return super.onOptionsItemSelected(item);
 }
0
задан Maxime Beasse 10 March 2019 в 07:30
поделиться

1 ответ

До тех пор, пока p + i (для любого i, положительного или отрицательного) не выходит за пределы в любом направлении (т. Е. Оно не указывает до tab[0] или после tab[n - 1] в вашем примере) тогда все в порядке.

И помните, что для любого указателя или массива p и индекса i выражение *(p + i) равно точно , равно p[i].


Если быть точным, то можно иметь указатель на где угодно , если он указывает на действительную память, когда вы разыменовываете указатель.

Пример:

int tab[N];  // Exact value of N is irrelevant
int *p = tab;  // Equal to p = &tab[0]

p--;  // After this, p will be pointing out of bounds, this is okay

// Comparing pointers is okay
if (p < tab)
{
    /* ... */
}

printf("Value of *p = %d\n", *p);  // ERROR: Here you dereference the ouf-of-bounds pointer
0
ответ дан Some programmer dude 10 March 2019 в 07:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: