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

rozdz. 15.1 inaczej deklarowana zmienna typu strukturalnego niż w rozdz. 14

Ostatnio zmodyfikowano 2010-01-22 16:12
Autor Wiadomość
marek
Temat założony przez niniejszego użytkownika
rozdz. 15.1 inaczej deklarowana zmienna typu strukturalnego niż w rozdz. 14
» 2010-01-22 13:29:53
zmienna "struktura" typu strukturalnego w p. 15.1 deklarowana jest:
C/C++
struct
{
    int liczba;
    long long duzaLiczba;
} struktura;
To działa, ale w/g rozdz. 14 dot. struktur zmienna "struktura" powinna być deklarowana:
C/C++
struct struktura
{
    int liczba;
    long long duzaLiczba;
};
I to nie działa
Why?

 
P-13204
marek
Temat założony przez niniejszego użytkownika
Tu może być pies pogrzebany
» 2010-01-22 13:53:10
"struktura" nie jest zmienną tylko typem zmiennej!

Tak jak w "int i;"  wyrażenie  "int" nie jest zmienną.


Ale może ktoś mi wytłumaczy dlaczego przykład 15.1 działa w stosunku do typu "struktura" (podaje adres tego tworu). To tak jakbym dla zmiennej "i" podawał adres "int".
 
P-13206
marek
Temat założony przez niniejszego użytkownika
zapiszę przykład 15.1 używając deklaracji struktury takiej jak w rozdz. 14
» 2010-01-22 15:12:11
Po modyfikacji przykładu 15.1, używając znanej mi deklaracji struktury z rozdz. 14, będzie działało.

C/C++
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    int zmienna1 = 213;
    int tablica[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    struct struktura
    {
        int liczba;
        long long duzaLiczba;
    };
    struktura zmienna;
    cout << "Adres zmienna1=" <<& zmienna1 << endl << endl;
    cout << "Adres tablica=" <<& tablica << endl;
    cout << "Adres tablica[0]=" <<& tablica[ 0 ] << endl;
    cout << "Adres tablica[1]=" <<& tablica[ 1 ] << endl << endl;
    cout << "Adres struktura=" <<& zmienna << endl;
    cout << "Adres struktura.liczba=" <<&( zmienna.liczba ) << endl;
    cout << "Adres struktura.duzaLiczba=" <<&( zmienna.duzaLiczba ) << endl;
    getch();
    return( 0 );
}

To
P-13208
Elaine
» 2010-01-22 16:12:49
Taki kod:
C/C++
struct
{
    int a;
    float b;
} foo;
powoduje utworzenie zmiennej foo typu anonimowego. Właśnie dlatego po definicji struktury trzeba zawsze dawać średnik - wolno zrobić:
C/C++
struct blah { } aaa, * ccc;
blah bbb;
aaa i bbb to normalne zmienne typu blah, a ccc to wskaźnik na blah.
P-13211
« 1 »
  Strona 1 z 1