.
Microsoft visual c++ 2008. Урок 17. Указатель на массив.
Автор megabax   
05.04.2012 г.
New Page 1

Microsoft visual c++ 2008. Урок 17. Указатель на массив.

Указатель на массив имеет интересное свойство. Пусть у нас есть массив 

int A[10]. 

Если мы сделаем присвоение

Pa=&A[0]

то переменная Pa будет указывать на адрес первого элемента массива. 

Pa+i будет указывать на i-ый элемент массива, то есть, его можно будет достать через *(Pa+i). Кроме того, к элементу массива мы можем получить доступ и через A+i, а значит и через Pa+i, так как Pa  у нас указывает на первый (точнее, нулевой) элемент массива. 

Продемонстрируем все это на примере:

#include "stdafx.h"

#include <stdio.h>

#include <stdlib.h>  //for atoi

#include <conio.h>

#define eof -1   //Ctrl+Z

#define maxline 10

 

// ввод строки с клавиатуры

int getline(char s[], int lim) {

    int c,i;

    for(i=0; i<lim-1 && (c=getchar())!=eof && c!='\n'; i++) s[i]=c;

    s[i]='\0';

    i++;

    return i;

}

 

 

 

int _tmain(int argc, _TCHAR* argv[])

{

    int A[maxline]={0,1,3,5,8,9,12,14,18,21};

    int *Pa=&A[0];   //указатель на массив

    char s[maxline];

    int c;

    do {

        printf("enter the item's number <0-9> ");

        getline(s,maxline);

        int i=atoi(s);

        printf("i=%d A[i]=%d *(Pa+i)=%d *(A+i)=%d %d\n",i,A[i],*(Pa+i),*(A+i),Pa[i]);

    } while ((c=getchar()!=eof));

    printf("Press any key to continue");

    _getch();  

    return 0;

}

А вот протокол работы данной программы:

Microsoft visual c++ 2008. Урок 17. Указатель на массив.


Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями   программного продукта "Microsoft Visual C++ Express Edition", авторское право на который принадлежит корпорации Microsoft.. 


 

Последнее обновление ( 16.11.2013 г. )