Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C Struktur dan Fungsi

Struktur dan Fungsi C

Dalam tutorial ini, Anda akan belajar meneruskan variabel struct sebagai argumen ke suatu fungsi. Anda akan belajar mengembalikan struct dari suatu fungsi dengan bantuan contoh.

Mirip dengan variabel tipe bawaan, Anda juga dapat meneruskan variabel struktur ke suatu fungsi.


Meneruskan struct ke fungsi

Kami menyarankan Anda untuk mempelajari tutorial ini sebelum Anda mempelajari cara meneruskan struct ke fungsi.

Inilah cara Anda dapat meneruskan struktur ke suatu fungsi

#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);
}

Keluaran

Enter name: Bond
Enter age: 13

Displaying information
Name: Bond
Age: 13  

Di sini, variabel struct s1 bertipe struct student dibuat. Variabel diteruskan ke display() fungsi menggunakan display(s1); pernyataan.


Kembalikan struct dari sebuah fungsi

Berikut cara mengembalikan struktur dari suatu fungsi:

#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;
}	

Di sini, getInformation() fungsi dipanggil menggunakan s = getInformation(); penyataan. Fungsi mengembalikan struktur tipe struct student . Struktur yang dikembalikan ditampilkan dari main() fungsi.

Perhatikan bahwa, tipe kembalian getInformation() juga struct student .


Melewati struct dengan referensi

Anda juga dapat meneruskan struct dengan referensi (dengan cara yang sama seperti Anda melewatkan variabel tipe bawaan dengan referensi). Kami menyarankan Anda untuk membaca tutorial referensi sebelum melanjutkan.

Selama referensi lewat, alamat memori variabel struct diteruskan ke fungsi.

#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; 
}

Keluaran

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  

Dalam program di atas, tiga variabel struktur c1 , c2 dan alamat hasil diteruskan ke addNumbers() fungsi. Di sini, hasil dilewatkan dengan referensi.

Ketika hasil variabel di dalam addNumbers() diubah, hasil variabel di dalam main() fungsi juga diubah sesuai.


Bahasa C

  1. C# struktur
  2. Fungsi teman C++ dan Kelas teman
  3. struktur C
  4. C struct dan Pointer
  5. C - Struktur Program
  6. C - Tipe Data
  7. C - Konstanta dan Literal
  8. C - Fungsi
  9. C++ Overloading (Operator dan Fungsi)
  10. Transformer Listrik:Fungsi, Struktur &Lainnya