Bài tập con trỏ trong c

Con trỏ trong c là gì?Con trỏ là biến đổi được dùng làm chứa showroom vùng lưu giữ của một biến đổi khác. Nếu như một vươn lên là chứa địa chỉ cửa hàng của thay đổi khác, thì biến thứ nhất được điện thoại tư vấn là con trỏ.

Bạn đang xem: Bài tập con trỏ trong c

Con trỏ cung cấp một phương pháp gián tiếp giúp truy vấn dữ liệu của biến chuyển mà con trỏ đó sẽ trỏđến.

Con trỏ có thể trỏđến các biến của các kiểu tài liệu như int, long, float, double, char hoặc tài liệu kiểu cấu trúc.

Tại sao phải áp dụng con trỏ?

Có thể liệt kêmột số trường hợp mà nhỏ trỏ gồm thểđược áp dụng như:xây dựng hàm trả về nhiều hơn thế nữa một giá trị;thao tác trên mảngđược tiện lợi hơn bằng cách di chuyển nhỏ trỏ cụ vì dịch rời vị trí của các phần tử.

Con trỏ vào c – Khai báo biến con trỏ

Kiểu_Dữ_Liệu *Tên_Con_Trỏ;Haitoán tử áp dụng với bé trỏ trong c làToán tử & cùng toán tử *

Toán tử &được sử dụngđể trả vềđịa chỉ vùng nhớ của biến

Tên_Biến = &Tên_Con_Trỏ;Toán tử *được sử dụngđể trả về giá chỉ trị chứa trong vùng ghi nhớ mà nhỏ trỏđang trỏđến.

Tên_Biến = *Tên_Con_Trỏ;Ví dụ khai báo nhỏ trỏ trong c

#include main()  int x; int *px; x = 7; px = &x; printf("%d", *px); Kết quả hiển thị trên màn hình hiển thị là 7.Độc mang quan gần cạnh hình bên dướiđể làm rõ hơn


*

Giả sử biến x cóđịa chỉ vùng nhớ là0240FF8C và câu chữ chứa bên phía trong vùng nhớ rằng 7 (x = 7)

Khi họ thực hiện tại xử lýpx = &x; có nghĩa là gán biến con trỏ px mang lại vùng nhớ0240FF8C.

Muốn truy vấn nội dung bên trong vùng ghi nhớ này, chúng ta sử dụng*px với hiển thị hiệu quả bằng lệnh printf:printf(“%d”, *px);

Con trỏ trong c –Con trỏ cùng với mảng

Như bạnđọcđã biết, bọn họ truy cập phần tử của mảng trải qua chỉ số theo cú pháp Tên_Mảng và tham khảođịa chỉ của mảng theo cú pháp &Tên_Mảng

Đối với nhỏ trỏ cú phápTên_Mảng sẽ là *(Tên_Mảng + Chỉ_Số), cú pháp&Tên_Mảng sẽ là Tên_Mảng + Chỉ_Số

Ví dụ khai báo mảng

int a<> =3, 2, 9, 100, 7;Truy cập phần tử thứ 3 củamảng

MảngCon trỏ
int x = a<2>;int x = *(a+2);

Tham khảođịa chỉ mảng

MảngCon trỏ
scanf(“%d”, &a<2>);scanf(“%d”, a+2);

Như vậy khi thao tác làm việc với mảng, bạn cũng có thể sử dụng 1 trong những hai giải pháp nhưđã trình bàyở trên.

Con trỏ trong c –Con trỏ với chuỗi

Quan giáp đoạn lịch trình sau

#include main() char *welcome = "Chao ban "; char yourname<50>; printf("Vui long nhap ten ban: "); //Thông báo scanf("%s", &yourname); //Nhập thương hiệu printf("%s%s", welcome, yourname); //Hiển thị Kết quả

Vui long nhap ten ban: DangChao ban DangGiải yêu thích chương trình

welcome là biến con trỏđược khai báo cùng khởi tạo bởi câu lệnh char *welcome = “Chao ban” thế vì áp dụng chuỗi charwelcome<10> = “Chao ban”.

Xem thêm: Nữ Sinh Mới Lớn Bị Lạm Dụng Bởi Những Kẻ Cuồng Dâm, Phim Set Thay Giao Hiep Dam Hoc Sinh

Cả nhì cáchđều cho cùng kết quả,điểm khác biệtởđây khi khai báo chuỗi áp dụng mảng chúng ta phải chỉđịnh số ký kết tự cònđối với con trỏ thì không.

Quan gần kề câu lệnh char yourname<50>; và câu lệnh char *yourname;

Con trỏ trong c –Con trỏ cùng với hàm

Tạo hàm hoán vị 2 số nguyên: trường hợpkhông áp dụng con trỏ

void hoanvi1(int a, int b) int t; t = a; a = b; b = t; Gọi hàm

int a = 1, b = 2; hoanvi1(a, b); printf("a = %d, b = %d", a, b);Kết quả hiển thị là 1, 2. Điều đó tức là giá trị của a và b vẫn không thay đổi mặc dù bên trong hàm hoanvi1 vẫn thực hiện biến đổi giá trị.

Trường hợp áp dụng con trỏ

void hoanvi2(int *a, int *b) int t; t = *a; *a = *b; *b = t; Gọi hàm

int a = 1, b = 2; hoanvi2(&a, &b); printf("a = %d, b = %d", a, b);Kết quả hiển thị: 2, 1. Nghĩa là quý hiếm của a cùng bđãđược thayđổi ngay lập tức trong bên thân hàm. Điều này rất có thể đượcgiải phù hợp như sau

Đối với hàm hoanvi1 mang dù chúng ta thực hiện nay hoánđổi giá chỉ trị mang lại 2 thông số a,b và dĩ nhiên giá trị của 2 tham số này đang thayđổi, tuy nhiên CHỈ THAYĐỔI BÊN vào HÀM, khi ngừng hàm giá trị của 2 thông số này vẫn duy trì nguyên. Vày thực chất bên phía trong hàm chỉ sử dụng phiên bản sao của biến đề nghị mọi thayđổi bên trong hàm đang khôngđược ghi nhận.

Đối với hàm hoanvi2 vày chúng tađang sử dụng con trỏ cho nên việc thayđổi giá chỉ trịđược tiến hành trên bạn dạng gốc của biến. Vày vậy quý giá của trở nên khi bị rứa đổi bên trong hàmsẽđược ghi thừa nhận sau khi xong xuôi hàm.

Con trỏ trong c –Tổng kết

Con trỏ với khai báo con trỏCon trỏ cùng với mảngCon trỏ cùng với chuỗiCon trỏ với hàm

Con trỏ trong c –Bài tập thực hành

Bài thực hành thực tế số 1: Viết chương trình kiểm tra một chuỗi bao gồm phải làpalindrome. Một chuỗi được hotline làpalindrome giả dụ sau khiđảo ngược những ký tự của chính nó ta vẫn nhậnđược chuỗi như banđầu. Lấy một ví dụ chuỗi MADAM.

Bài thực hành thực tế số 2: Viết công tác nhập vào mộttên và đếmsố ký tự là nguyênâm với phụâm.

Bài thực hành thực tế số 3: Viết chương trình tìm bộ phận có giá bán trị nhỏ nhất và lớn số 1 trong mảng một chiều.