rozdz. 15.1 inaczej deklarowana zmienna typu strukturalnego niż w rozdz. 14
Ostatnio zmodyfikowano 2010-01-22 16:12
| 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: struct{
 int liczba;
 long long duzaLiczba;
 } struktura;
To działa, ale w/g rozdz. 14 dot. struktur zmienna "struktura" powinna być deklarowana: struct struktura{
 int liczba;
 long long duzaLiczba;
 };
I to nie działa  Why?  | 
|  | 
| 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".
 
 | 
|  | 
| 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. #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  | 
|  | 
| Elaine |   » 2010-01-22 16:12:49 Taki kod:  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ć:  struct blah { } aaa, * ccc;blah bbb;
aaa i bbb to normalne zmienne typu blah, a ccc to wskaźnik na blah. | 
|  | 
| « 1 » |