Struct và Hàm trong C

Sử dụng struct trong hàm

Ví dụ

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

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

int main() {
   struct student s1;

   printf("Nhập tên: ");

   // đọc string được nhập vào cho đên khi gặp \n
   scanf("%[^\n]%*c", s1.name);

   printf("Nhập tuổi: ");
   scanf("%d", &s1.age);

   display(s1); // sử dụng struct như một argument

   return 0;
}

void display(struct student s) {
   printf("\nHiển thị thông tin\n");
   printf("Tên: %s", s.name);
   printf("\nTuổi: %d", s.age);
}

Kết quả

Nhập tên: Saitama
Nhập tuổi: 27

Hiển thị thông tin
Tên: Saitama
Tuổi: 27  

Hoàn trả struct từ một hàm

Ví dụ

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

// function prototype
struct student getInformation();

int main()
{
    struct student s;

    s = getInformation();

    printf("\nHiển thị thông tin\n");
    printf("Tên: %s", s.name);
    printf("\nTuổi: %d", s.age);

    return 0;
}
struct student getInformation() 
{
  struct student s1;

  printf("Nhập tên: ");
  scanf ("%[^\n]%*c", s1.name);

  printf("Nhập tuổi: ");
  scanf("%d", &s1.age);

  return s1;
}   

Sử dụng struct bởi reference

Ví dụ

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

Kết quả

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
Series Navigation<< Pointer & Struct trong C

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *