Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C Structuur en functie

C Structuur en functie

In deze zelfstudie leert u structvariabelen als argumenten door te geven aan een functie. Je leert struct uit een functie terug te geven aan de hand van voorbeelden.

Net als bij variabelen van ingebouwde typen, kunt u ook structuurvariabelen doorgeven aan een functie.


Structs doorgeven aan functies

We raden je aan deze tutorials te leren voordat je leert hoe je structs doorgeeft aan functies.

  • C-structuren
  • C-functies
  • Door gebruiker gedefinieerde functie

Hier leest u hoe u structuren aan een functie kunt doorgeven

#include <stdio.h>
struct student {
   char name[50];
   int age;
};

// function prototype
void display(struct student s);

int main() {
   struct student s1;

   printf("Enter name: ");

   // read string input from the user until \n is entered
   // \n is discarded
   scanf("%[^\n]%*c", s1.name);

   printf("Enter age: ");
   scanf("%d", &s1.age);

   display(s1); // passing struct as an argument

   return 0;
}

void display(struct student s) {
   printf("\nDisplaying information\n");
   printf("Name: %s", s.name);
   printf("\nAge: %d", s.age);
}

Uitvoer

Enter name: Bond
Enter age: 13

Displaying information
Name: Bond
Age: 13  

Hier een structvariabele s1 van het type struct student is gecreëerd. De variabele wordt doorgegeven aan de display() functie met behulp van display(s1); verklaring.


Return struct uit een functie

Hier ziet u hoe u de structuur van een functie kunt retourneren:

#include <stdio.h>
struct student
{
    char name[50];
    int age;
};

// function prototype
struct student getInformation();

int main()
{
    struct student s;

    s = getInformation();

    printf("\nDisplaying information\n");
    printf("Name: %s", s.name);
    printf("\nRoll: %d", s.age);
    
    return 0;
}
struct student getInformation() 
{
  struct student s1;

  printf("Enter name: ");
  scanf ("%[^\n]%*c", s1.name);

  printf("Enter age: ");
  scanf("%d", &s1.age);
  
  return s1;
}	

Hier, de getInformation() functie wordt aangeroepen met s = getInformation(); uitspraak. De functie retourneert een structuur van het type struct student . De geretourneerde structuur wordt weergegeven vanaf de main() functie.

Merk op dat het retourtype getInformation() is ook struct student .


Struct doorgeven via referentie

Je kunt ook structs doorgeven door te verwijzen (op dezelfde manier als variabelen van het ingebouwde type door te verwijzen). We raden je aan om de handleiding met referenties te lezen voordat je verder gaat.

Tijdens pass by reference worden de geheugenadressen van struct-variabelen aan de functie doorgegeven.

#include <stdio.h>
typedef struct Complex
{
    float real;
    float imag;
} complex;

void addNumbers(complex c1, complex c2, complex *result); 

int main()
{
    complex c1, c2, result;

    printf("For first number,\n");
    printf("Enter real part: ");
    scanf("%f", &c1.real);
    printf("Enter imaginary part: ");
    scanf("%f", &c1.imag);

    printf("For second number, \n");
    printf("Enter real part: ");
    scanf("%f", &c2.real);
    printf("Enter imaginary part: ");
    scanf("%f", &c2.imag);

    addNumbers(c1, c2, &result); 
    printf("\nresult.real = %.1f\n", result.real);
    printf("result.imag = %.1f", result.imag);
    
    return 0;
}
void addNumbers(complex c1, complex c2, complex *result) 
{
     result->real = c1.real + c2.real;
     result->imag = c1.imag + c2.imag; 
}

Uitvoer

For first number,
Enter real part:  1.1
Enter imaginary part:  -2.4
For second number, 
Enter real part:  3.4
Enter imaginary part:  -3.2

result.real = 4.5
result.imag = -5.6  

In het bovenstaande programma zijn drie structuurvariabelen c1 , c2 en het adres van resultaat wordt doorgegeven aan de addNumbers() functie. Hier, resultaat wordt doorgegeven door middel van referentie.

Wanneer het resultaat variabele binnen de addNumbers() is gewijzigd, het resultaat variabele binnen de main() functie wordt ook dienovereenkomstig gewijzigd.


C Taal

  1. C#-structuur
  2. C++ vriend Functie en vriend Klassen
  3. C-structuur
  4. C-structuren en aanwijzers
  5. C - Programmastructuur
  6. C - Gegevenstypen
  7. C - Constanten en Letters
  8. C - Functies
  9. C++ overbelasting (operator en functie)
  10. Elektrische transformatoren:functie, structuur en meer
  11. 15 verschillende onderdelen van draaibankmachine en hun functie