C ++ wskaźnik do tablicy
Można pominąć ten rozdział, a więc zrozumieć pojęcie C ++ wskaźniki potem przyjść, aby dowiedzieć się w tym rozdziale.
Jeśli rozumiesz pojęcie wskaźników C ++, wtedy można zacząć uczyć się w tym rozdziale. Nazwa tablicy jest stałym wskaźnikiem skierowaną do pierwszego elementu tablicy. Dlatego w następującym stwierdzeniem:
double balance[50];
Bilans jest punktem równowagi i [0] wskazówka, że adres pierwszego elementu tablicy salda.Dlatego też poniższy fragment programuP przypisany do pierwszego elementu równowagina adres:
double *p; double balance[10]; p = balance;
Użyj jako stałą nazwą tablicy wskaźnik jest zgodny z prawem, i vice versa. Dlatego * (saldo + 4) jest bilans [4] legalny sposób, aby uzyskać dostęp do danych.
Po uzyskaniu adresu zapisanego w pierwszym elemencie p, można użyć * p * (p + 1) * (p + 2) i tak, aby uzyskać dostęp do elementów tablicy. Poniższy przykład demonstruje te koncepcje omówione powyżej:
#include <iostream> using namespace std; int main () { // 带有 5 个元素的整型数组 double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0}; double *p; p = balance; // 输出数组中每个元素的值 cout << "使用指针的数组值 " << endl; for ( int i = 0; i < 5; i++ ) { cout << "*(p + " << i << ") : "; cout << *(p + i) << endl; } cout << "使用 balance 作为地址的数组值 " << endl; for ( int i = 0; i < 5; i++ ) { cout << "*(balance + " << i << ") : "; cout << *(balance + i) << endl; } return 0; } #include <stdio.h> int main () { /* 带有 5 个元素的整型数组 */ double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0}; double *p; int i; p = balance; /* 输出数组中每个元素的值 */ printf( "使用指针的数组值\n"); for ( i = 0; i < 5; i++ ) { printf("*(p + %d) : %f\n", i, *(p + i) ); } printf( "使用 balance 作为地址的数组值\n"); for ( i = 0; i < 5; i++ ) { printf("*(balance + %d) : %f\n", i, *(balance + i) ); } return 0; }
Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:
Korzystanie z tablicą wartości wskaźnika * (p + 0): 1000 * (P + 1): 2 * (P + 2): 3,4 * (P + 3): 17 * (P + 4): 50 Użyj wartość bilansową, jako adresu tablicy * (saldo + 0): 1000 * (Balans + 1): 2 * (Balans + 2): 3,4 * (Balans + 3): 17 * (Balans + 4): 50
W przykładzie powyżej, p jest wskaźnik do wskaźnika typu podwójne, co oznacza, że może być przechowywany w zmiennej typu podwójne. Gdy mamy adresup, * Wartość p otrzyma odpowiedni adres w pamięci, jak wykazano w powyższych przykładach.