Титла: Структури в c Публикувано от: Apache в Mar 19, 2006, 22:38 Здравейте. Уча C и колкото и да ме е срам забих на "Структури". Става дума за това че не мога да схвана общия синтаксин на този фрагмент за пример :
В книгата от която чета е обяснено като че ли не както трябва. Съответно не мога да вникна в синтаксиса. Като например какви са тези променливи u,v,t и за какво са, при положение че вече има три променливи за часове минути и секунди. Като цяло ми е трудно да формулирам точен въпрос, за това се надявам някой просто да ми даде инфо за тези структури и техния синтаксис. Ако е възможно разбира се. Благодаря предварително. Титла: Структури в c Публикувано от: danchev в Mar 19, 2006, 23:17 В случая u,v,t (както си ги дал след декларацията на структурата) се явяват променливи от тип struct time ;-) и за тях се заделя място в паметта. Тези нямат нищо общо със самите членове на структурата (изброени вътре в нея ;-) - hour, min, sec.
Не си длъжен след декларацията на структурата да деклариращ и променливи от този тип. Т.е. може да декларираш струтурата: struct time { int hour; /* променлива за часовете */ int min; /* променлива за минутите */ float sec; /* променлива за секундите */ }; и после да кажеш те тази променлива е от този тип който току що горе декларирах: struct time u Структурите в C са като записите в Pascal, т.е. агрегатен тип сътворяван (измислян) от потребителя. Фасулска работа ;-) Титла: Структури в c Публикувано от: ivak в Mar 20, 2006, 10:08
обаче трябва да я декларираш като тип: typedef struct time { ... }; освен това С-то има една особеност на синтаксиса, която ти позволява да не пишеш всеки път struct time, когато декларираш променливи от този тип. ако го декларираш така: typedef struct time { ... } time; после можеш да декларираш променливите като: time t, u, v; Титла: Структури в c Публикувано от: Apache в Mar 21, 2006, 17:20 Благодаря за отговорите. Значи структурите представляват дефиниран от програмиста тип. Но въпреки това не успях да схвана смисъла на тези три реда :
Титла: Структури в c Публикувано от: Hapkoc в Mar 21, 2006, 17:42 Еми именно трите посочени реда дефинират какво ще съдържа структурата.
В случая имаш три променливи от тази структура и за всяка от променливите имаш по три полета, съответно hour, min и sec. Не знам как по ясно да го обясня. Ето:
А защо секундите са float вече не мога да кажа, това автора на кода ще го каже :-) Титла: Структури в c Публикувано от: Apache в Mar 21, 2006, 18:22 Да, и аз така предполагах, но имаше нещо друго което като че ли ме обърка. Както и да е, явно е било без значение. Мерси за помоща.
![]() Титла: Структури в c Публикувано от: в Apr 12, 2006, 21:54 Почти сам готов да се обзаложа, че си се объркал от
typedef struct time { init hour ............ } u, v, t; тоест за какво са ти тея u, v, t Идеята тука е, че не може да достъпваш променливите на структурата time директно hour =3; или посочвайки самата структура time.hour=3; Това става именно с u, v, t, като трябва да имаш предвид, както бе споменато, че u.hour=3; и v.hour = 3; нямат нищо общо помежду си. променяйки стойността на едното няма да засегнеш стойността на другото. За всяка една от тях се заделя отделна памет. Ако ти е по- лесно представи си го като потребител u, v и t, като стойностите които въвежда единия не засягат стойностите въведени от другия. |