Тема: питання по вказівниках

Поясніть що варто знати щоб краще розбиратися в таких символах ( * ) ( & )   мені важко даються задачі з їх використанням я не розумію що означає знаходяться за адресою, а також коли і як вказівнику передається адрес

прошу допомоги як ви це розумієте і як найкраще до цього підійти?

2 Востаннє редагувалося Bartash (25.02.2013 00:25:20)

Re: питання по вказівниках

от конкретно як розібратися в цьому коді?

#include <iostream>
using namespace std;
int main()
{

    int num[10];
    int *start,*end;
    start = num;
    end= &num[9];

    while(start<=end) {
    cout<<"vvedit chislo";
    cin >>*start;
    start++;
    }
    start = num;
    while(start<=end) {
    cout<<*start<<' ';
    start++;
    }
    return 0;
}

3 Востаннє редагувалося Ярослав (23.11.2012 12:57:32)

Re: питання по вказівниках

http://ukrtechlibrary.wordpress.com/cat … %D1%8F/cc/

Білий Лунь

4 Востаннє редагувалося Patron (23.11.2012 13:10:37)

Re: питання по вказівниках

seva.tsimbalisty написав:

от конкретно як розібратися в цьому коді?

#include <iostream>
using namespace std;
int main()
{
// масив з 10 елементів типу int (назва масиву є вказівником на перший елемент)
    int num[10];

// описуємо 2 вказівники на int 
    int *start,*end; 

// ініціалізуємо вказівник start так щоб він вказував на пеший елемент масиву num ( num - це вказівник на перший елемент масиву, num і &num[0] еквівалентно)
    start = num;

// беремо десятий елемент, беремо його адрес і цим адресом ініціалізуємов вказівник end,
    end= &num[9]; 


//в умові циклу порівнюються два вказівники (не об'єкти на які вони вказують)
    while(start<=end) {
    cout<<"vvedit chislo";
//в те місце на яке вказує start записуємо число яке введемо в консолі (це число і буде об'єктом в пам'яті на який вказує вказівник)
    cin >>*start;
//переводимо вказівник так щоб він вказував на один int далі 
    start++;
//зараз вказівник вказує на місце у пам'яті куди ми ще нічого не записали, ми це зробимо у наступні ітерації
    }
//переводимо вказівник start так щоб він знову вказував на перший елемент так як це робить num
    start = num;
    while(start<=end) {
//по черзі виводимо об'єкти типу int на які вказує start
    cout<<*start<<' ';
//переводимо вказівник start на наступний об'єкт
    start++;
    }
//повертаємо 0 як ознаку успішного виконання програми
    return 0;
}

Книга "Керниган, Ричи. Язык C". Можу від себе порадити саме цю книжку.

Щоб зрозуміти рекурсію потрібно спочатку зрозуміти рекурсію.
int fac(int n) { return n < 2 ? 1 : n*fac(n-1); }
Подякували: seva.tsimbalisty1