Объясните, как и почему указатель использовался в следующем коде Turbo C.

int a[10],sum,*p;
sum=0;
for(p=&a[0];p<&a[10];p++)
    sum += *p;
printf("%d",sum)

Привет, я новичок в турбо c, особенно в указателях. Может кто-нибудь объяснить мне, как указатель использовался в этой программе. Заранее спасибо.

Я знаю, как работает программа, но не могу понять, почему программа использовала указатель и знак '&'. Спасибо.


person Pete    schedule 03.03.2013    source источник
comment
Вам следует обратиться к основному учебнику.   -  person Mitch Wheat    schedule 03.03.2013
comment
Начните с этого определения: Указатель — это переменная, которая содержит адрес другой переменной в памяти.   -  person Lion    schedule 03.03.2013
comment
Если у вас есть выбор, избегайте Turbo C как чумы. Это древнее.   -  person Oliver Charlesworth    schedule 03.03.2013


Ответы (1)


Это наглядный пример указателей в C, однако этот код можно написать и без указателей. Здесь

p=&a[0]

^ хранит адрес памяти первого значения массива a. И цикл For будет выполняться до тех пор, пока указатель не сохранит адрес памяти последнего значения массива, то есть a[10].

sum += *p;

^ в приведенном выше выражении *p обозначает значение адреса памяти, на который указывает указатель p. Например, p в настоящее время указывает на a[0]. Затем значение a[0] будет добавлено к sum. В следующей итерации цикла For значение p увеличивается, и оно будет указывать на a[1].

person Piyush aggarwal    schedule 03.03.2013