Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Wskaznik, wartosc, referencja

Ostatnio zmodyfikowano 2015-11-23 19:48
Autor Wiadomość
Piotrekk
Temat założony przez niniejszego użytkownika
[C++] Wskaznik, wartosc, referencja
» 2015-11-23 19:39:31
Witam, mam do napisania następujący program:
1) Stwórz 3 funkcje
1. Pobierającą jako argument wartość zmiennej int
2. Pobierającą jako argument wskaźnik na zmienną int
3. Pobierającą jako argument referencję do zmiennej typu int
UWAGA - Każda z funkcji ma wyświetlać wartość zmiennej, jej adres, zwiększyć
wartość o 1 i ponownie wyświetlić
2) W funkcji main
1. Stwórz zmienną typu int i ustaw jej wartość początkową.
2. Wywołaj każdą z funkcji
(a) Jakie są różnice w działaniu funkcji?
(b) Jak i czemu zmieniają się wartości zmiennych?
Opisz spostrzeżenia w komentarzach

Napisałem następujący kod, który nie działa prawidłowo. Uprzejmie proszę o kilka wskazówek co powinienem zmienić i dlaczego. Pozdrawiam.


C/C++
#include "stdafx.h"
#include "iostream"
using namespace std;

void wartosc( int a )
{
    cout << "ARGUMENT PRZEZ WARTOSC" << endl;
    cout << a << endl;
    cout <<( int ) & a << endl;
    int b = a + 1;
    cout << b << endl;
    cout <<( int ) & b << endl << endl;
}

void wskaznik( int * a )
{
    cout << "ARGUMENT PRZEZ WSKAZNIK" << endl;
    cout << * a << endl;
    cout <<( int ) & a << endl;
    int * b;
    b = a + 1;
    cout << * b << endl;
    cout <<( int ) & b << endl << endl;
   
}

void referencja( int & a )
{
    cout << "ARGUMENT PRZEZ REFERENCJE" << endl;
    cout << a << endl;
    cout <<( int ) & a << endl;
    int b = a + 1;
    cout << b << endl;
    cout <<( int ) & b << endl << endl;
}


int main()
{
    int a = 10;
   
    wartosc( a );
    wskaznik( & a );
    referencja( a );
   
    system( "Pause" );
    return 0;
}
P-140660
Monika90
» 2015-11-23 19:48:02
Nie rzutuj wskaźników na int. W funkcji wskaznik nie musisz pobierać adresu zmiennej a bo ona już jest wskaźnikiem.

Zamiast #include "iostream" powinno być #include <iostream>, a ponieważ używasz funkcji system to również #include <cstdlib>

No i do zwiększania wartośći zmiennej użyj operatora ++, ewentualnie +=,
czyli ++a;  a gdy a jest wskaźnikiem to ++*a;
P-140661
« 1 »
  Strona 1 z 1