Δημοσιεύτηκε: 11 Σεπ 2011, 20:05
Star_Light έγραψε:
- Κώδικας: Επιλογή όλων
#include <stdio.h>
#define N 254 + 1
typedef struct person
{
int age;
char name[N];
char surname[N];
} kostas ;
int main(void)
{
kostas someone;
kostas *p;
p=&someone;
printf("Dwse to onoma sou: ");
fgets((*p).name,254,stdin);
printf("Dwse to epwnumo sou: ");
fgets((*p).surname,254,stdin);
printf("Dwse tin ilikia sou: ");
scanf("%d",&someone.age);
printf("========================================");
printf("\nTo onoma pou edwses einai: %s",(*p).name);
printf("H ilikia pou edwses einai: %d",(*p).age);
printf("\nTo epwnimo pou edwses einai: %s",(*p).surname);
return 0;
}
εδω ειμαι τωρα
Το p είναι περιττό, στον κώδικα αυτόν. Μπορείς να δουλέψεις απευθείας με το someone. Αλλά ακόμα κι αν το έχεις κάνει απλά για δοκιμή, το (*p).name είναι καλύτερα να το γράφεις: p->name (εφόσον το p είναι δείκτης).
έγραψε:
Να ρωτησω κατι... δεν μπορεις να αρχικοποιησεις απευθειας μια κυρια δομη ε???? πχ
- Κώδικας: Επιλογή όλων
struct person {
int a;
int b;
};
main()
{
person.a=...
person.b=....
}
Από την αναθεώρηση C99 και μετά μπορείς:
- Κώδικας: Επιλογή όλων
int main( void )
{
person a = {.a=0, .b=0 }; // ή σκέτο: person a = { 0, 0 };
}
Πριν την C99 δεν μπορούσαμε (ούτε στον διευθυνσιογράφο το χρησιμοποιούμε, για να έχει συμβατό κώδικα σε όλους τους compilers).