Con trỏ và hàm trong C

Con trỏ và hàm trong C free download max speed

Trong bài học lập trình c cơ bản, hôm nay tôi sẽ tiếp tục giới thiệu đến cho các bạn con trỏ và hàm trong lập trình C, để hiểu được nội dung này các bạn nên tìm hiểu 2 vấn đề cần quan tâm nhất trước:

  1. Hàm trong C
  2. Con trỏ trong C

Trong lập trình C, cũng có thể truyền địa chỉ làm đối số cho các hàm.
Để chấp nhận các địa chỉ này trong định nghĩa hàm, chúng ta có thể sử dụng các con trỏ. Đó là vì con trỏ được sử dụng để lưu trữ địa chỉ. Hãy lấy một ví dụ:
Con trỏ và hàm trong C

Ví dụ: Gọi theo tham chiếu
#include <stdio.h>
void swap(int *n1, int *n2);
int main()
{
    int num1 = 5, num2 = 10;
    // address of num1 and num2 is passed
    swap( &num1, &num2);
    printf("num1 = %d\n", num1);
    printf("num2 = %d", num2);
    return 0;
}
void swap(int* n1, int* n2)
{
    int temp;
    temp = *n1;
    *n1 = *n2;
    *n2 = temp;
}
Kết quả:
num1 = 10
num2 = 5
giải thích:
Khi * n1 và * n2 được thay đổi bên trong hàm exchange (), num1 và num2 bên trong hàm main () cũng được thay đổi.
Bên trong hàm exchange (), * n1 và * n2 được tráo đổi. Do đó, num1 và num2 cũng được hoán đổi.
Lưu ý rằng, hoán đổi () không trả lại bất cứ thứ gì; loại trả về của nó là void.
Kỹ thuật này được gọi là cuộc gọi bằng cách tham chiếu trong lập trình C.
Địa chỉ của num1 và num2 được truyền cho hàm exchange () bằng cách sử dụng trao đổi (& num1, & num2);.
Con trỏ n1 và n2 chấp nhận các đối số này trong định nghĩa hàm.
void swap(int* n1, int* n2) {
    ... ..
}
Ví dụ 2: Truyền con trỏ đến các hàm
#include <stdio.h>

void addOne(int* ptr) {
  (*ptr)++; // adding 1 to *ptr
}
int main()
{
  int* p, i = 10;
  p = &i;
  addOne(p);
  printf("%d", *p); // 11
  return 0;
}
Ở đây, giá trị được lưu trữ tại p, * p, là 10 ban đầu.
Sau đó chúng ta đã chuyển con trỏ p đến hàm addOne (). Con trỏ ptr lấy địa chỉ này trong hàm addOne ().
Bên trong hàm, chúng tôi đã tăng giá trị được lưu trữ ở ptr lên 1 bằng cách sử dụng (* ptr) ++;. Vì các con trỏ ptr và p đều có cùng một địa chỉ, * p bên trong hàm main () cũng là 11.

Con trỏ và hàm trong C free download max speed

0 Nhận xét