Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Structs Doorgeven aan Functies | Werken met Pointers en Structs
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
C-Structs Beheersen

bookStructs Doorgeven aan Functies

Functies kunnen met structuren werken, net als met gewone variabelen:

main.c

main.c

copy
123456789101112131415161718192021
#include <stdio.h> // structure definition typedef struct { char name[50]; } Person; // function to display information about a person void printPerson(Person p) { printf("Name: %s\n", p.name); } int main() { // creating a structure and initializing its values Person person1 = {"John"}; // call a function to display information about a person printPerson(person1); return 0; }

Om een functie met een structuur te laten "interacteren", bijvoorbeeld om de velden van een bestaande structuur te wijzigen, moet de functie een pointer naar de structuur accepteren:

main.c

main.c

copy
12345678910111213141516171819202122232425262728293031
#include <stdio.h> // structure definition typedef struct { char symbol; }Example; // function for changing the values of structure fields via a pointer void changePoint(Example* ptr, int newSymbol) { // check for NULL pointer if (ptr != NULL) { ptr->symbol = newSymbol; } } int main() { // create the Example structure and a pointer Example ptr1 = {'H'}; Example* ptr = &ptr1; printf("Old symbol: %c | %p\n", ptr1.symbol, &ptr1); // use function to change the field of structures changePoint(ptr, 'y'); printf("New symbol: %c | %p\n", ptr1.symbol, &ptr1); return 0; }

Structuren kunnen binnen functies worden aangemaakt, en dergelijke structuren kunnen "buiten" de functies blijven bestaan (niet lokaal) als de functie een pointer naar zo'n structuur retourneert:

main.c

main.c

copy
1234567891011121314151617181920212223242526272829303132
#include <stdio.h> #include <stdlib.h> // structure definition typedef struct { int value; }Example; // function creates a structure with the given field Example* CreateStruct(int setVal) { Example* ptr = (Example*)malloc(sizeof(Example)); // check for successful memory allocation if (ptr != NULL) { ptr->value = setVal; } return ptr; } int main() { // use function to create structure Example* ptrToStruct = CreateStruct(23); printf("Value inside struct: %d", ptrToStruct->value); free(ptrToStruct); // free memory return 0; }
Taak

Swipe to start coding

Je beheert een klein team van drie medewerkers, en elk van hen heeft een uurtarief en het aantal gewerkte uren per week.
Je taak is om het gemiddelde wekelijkse salaris voor het hele team te berekenen.

Binnen de functie calculateWeeklySalary:

  1. Ontvang een structuur van het type Employee als parameter.
  2. Toegang tot de velden hourlyRate en hoursWorked.
  3. Vermenigvuldig deze om het wekelijkse salaris voor die medewerker te berekenen.
  4. Retourneer het berekende salaris als een double.

Binnen de functie calculateAverageSalary:

  1. Ontvang drie Employee structuren als parameters.
  2. Roep calculateWeeklySalary() aan voor elke medewerker om hun totale loon te verkrijgen.
  3. Tel alle drie de salarissen bij elkaar op.
  4. Deel het totaal door 3.0 om het gemiddelde wekelijkse salaris te berekenen.
  5. Retourneer dit gemiddelde als een double.

Example

Employee NameHourly RateHours WorkedWeekly Salary
Alice Johnson22.540900.00
Bob Smith18.038684.00
Carol White25.0421050.00

Average Weekly Salary: 878.00

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 5
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

close

bookStructs Doorgeven aan Functies

Veeg om het menu te tonen

Functies kunnen met structuren werken, net als met gewone variabelen:

main.c

main.c

copy
123456789101112131415161718192021
#include <stdio.h> // structure definition typedef struct { char name[50]; } Person; // function to display information about a person void printPerson(Person p) { printf("Name: %s\n", p.name); } int main() { // creating a structure and initializing its values Person person1 = {"John"}; // call a function to display information about a person printPerson(person1); return 0; }

Om een functie met een structuur te laten "interacteren", bijvoorbeeld om de velden van een bestaande structuur te wijzigen, moet de functie een pointer naar de structuur accepteren:

main.c

main.c

copy
12345678910111213141516171819202122232425262728293031
#include <stdio.h> // structure definition typedef struct { char symbol; }Example; // function for changing the values of structure fields via a pointer void changePoint(Example* ptr, int newSymbol) { // check for NULL pointer if (ptr != NULL) { ptr->symbol = newSymbol; } } int main() { // create the Example structure and a pointer Example ptr1 = {'H'}; Example* ptr = &ptr1; printf("Old symbol: %c | %p\n", ptr1.symbol, &ptr1); // use function to change the field of structures changePoint(ptr, 'y'); printf("New symbol: %c | %p\n", ptr1.symbol, &ptr1); return 0; }

Structuren kunnen binnen functies worden aangemaakt, en dergelijke structuren kunnen "buiten" de functies blijven bestaan (niet lokaal) als de functie een pointer naar zo'n structuur retourneert:

main.c

main.c

copy
1234567891011121314151617181920212223242526272829303132
#include <stdio.h> #include <stdlib.h> // structure definition typedef struct { int value; }Example; // function creates a structure with the given field Example* CreateStruct(int setVal) { Example* ptr = (Example*)malloc(sizeof(Example)); // check for successful memory allocation if (ptr != NULL) { ptr->value = setVal; } return ptr; } int main() { // use function to create structure Example* ptrToStruct = CreateStruct(23); printf("Value inside struct: %d", ptrToStruct->value); free(ptrToStruct); // free memory return 0; }
Taak

Swipe to start coding

Je beheert een klein team van drie medewerkers, en elk van hen heeft een uurtarief en het aantal gewerkte uren per week.
Je taak is om het gemiddelde wekelijkse salaris voor het hele team te berekenen.

Binnen de functie calculateWeeklySalary:

  1. Ontvang een structuur van het type Employee als parameter.
  2. Toegang tot de velden hourlyRate en hoursWorked.
  3. Vermenigvuldig deze om het wekelijkse salaris voor die medewerker te berekenen.
  4. Retourneer het berekende salaris als een double.

Binnen de functie calculateAverageSalary:

  1. Ontvang drie Employee structuren als parameters.
  2. Roep calculateWeeklySalary() aan voor elke medewerker om hun totale loon te verkrijgen.
  3. Tel alle drie de salarissen bij elkaar op.
  4. Deel het totaal door 3.0 om het gemiddelde wekelijkse salaris te berekenen.
  5. Retourneer dit gemiddelde als een double.

Example

Employee NameHourly RateHours WorkedWeekly Salary
Alice Johnson22.540900.00
Bob Smith18.038684.00
Carol White25.0421050.00

Average Weekly Salary: 878.00

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 5
single

single

some-alt