Con trỏ trong C là gì? Giới thiệu khái niệm và nội dung cơ bản

5/5 – ( 5 votes )

Con trỏ trong C là một khái niệm rất quen thuộc đối với các nhà lập trình viên. Tuy cơ bản nhưng lĩnh vực kiến thức mà con trỏ trong C++ liên quan là rất rộng. Người dùng cần nắm vững những thông tin quan trọng này để có thể sử dụng một cách nhuần nhuyễn con trỏ C. Bài viết sau sẽ đề cập đến khái niệm của con trỏ C, cách sử dụng và biểu diễn nó trong ngôn ngữ lập trình như thế nào. Hãy theo dõi ngay!

Tìm hiểu địa chỉ ô nhớ trong C

Trước khi khám phá khái niệm con trỏ trong C, ta sẽ điểm qua một vài thông tin của địa chỉ biến nhớ trước. Đầu tiên ta sẽ nhìn qua ví dụ sau :int number ;printf ( “ \ nNhap number = “ ) ;scanf ( “ % d ”, và number ) ;printf ( “ \ nnumber = % d ”, number ) ;Bạn hoàn toàn có thể thấy rằng khi dùng hàm scanf, để truyền biến number ta cần dùng dấu và. Còn so với hàm printf thì lại không cần. Lý do ở đây là gì ? Câu vấn đáp là vì scanf cần giá trị của biến, do đó dấu và sẽ giúp nó xác định được địa chỉ của biến đó .Mảng con trỏ C++Từ đó ta rút ra được Kết luận : Mỗi biến đều được đính kèm địa chỉ của nó và giá trị nó đang tàng trữ. Để xác lập được địa chỉ của biến, ta chỉ cần thêm dấu và đằng trước nó .Ví dụ thực hành thực tế : Khi chạy đoạn mã sau :

#include

int main ( ){int number = 5 ;printf ( “ Gia tri cua number = % d ”, number ) ;/ / truy xuất địa chỉ bằng cách thêm và trước tên biếnprintf ( “ \ nDia chi cua number = % d ”, và number ) ;return 0 ;}Thì ta sẽ nhận được hiệu quả trả về là :Gia tri cua number = 5Dia chi cua number = 6487580Chú ý rằng tác dụng ở mỗi máy hoàn toàn có thể khác nhau do thông số kỹ thuật không giống nhau. Nếu bạn muốn nhận địa chỉ là hexa như đầu bài, hãy sửa chữa thay thế % d bằng % x .

Con trỏ trong C là gì ?

Quay trở lại với khái niệm của con trỏ trong C. Con trỏ C cũng là một dạng biến có địa chỉ và giá trị đi kèm. Nhưng pointer ( con trỏ C ) là một biến đặc biệt quan trọng, nó không tàng trữ những giá trị thường thì. Biến của con trỏ sẽ trỏ đến một địa chỉ của biến khác. Chính vì vậy giá trị của nó ở trong dạng một địa chỉ .Vậy là trong con trỏ C sẽ tàng trữ 2 địa chỉ khác nhau : địa chỉ của con trỏ là vị trí của nó nhưng giá trị của nó lại là địa chỉ của biến mà nó đang trỏ tới. Ngoài ra, nhờ năng lực tàng trữ địa chỉ đặc biệt quan trọng của con trỏ C, nó được cho phép người dùng trỏ đến một điểm bất kể trong bộ nhớ. Nếu nắm chắc cách sử dụng pointer, bạn sẽ cảm thấy đây là một điểm mạnh tuyệt vời của nó. Nhưng nếu ngược lại, vì thực trạng trỏ lung tung của pointer, người dùng không hề giải quyết và xử lý sẽ cho đây là một điểm yếu phiền phức .

>>>Mời bạn tham khảo thêm:

Những nội dung tương quan đến con trỏ C + +

Cách khai báo con trỏ

Cách khai báo con trỏ C cũng giống như những biến thông thường khác, gồm có kiểu tài liệu và tên biến được ngăn cách ở giữa bới dấu *. Điều kiện là định danh tên biến phải hợp lệ. Cú pháp mẫu khi khai báo con trỏ như sau :

*

hoặc

*

hay

*

Ví dụ về con trỏ trong CCả 3 kiểu khai báo như thế này đều đúng .Có nhiều kiểu tài liệu khác nhau, hoàn toàn có thể là void, int, float hay double … đều được. Tác dụng của dấu * là cho trình biên dịch biết đằng sau nó là một biến được khai báo dạng con trỏ. Dưới đây là 1 số ít ví dụ về cú pháp đơn cử của những loại khai báo trỏ biến khác nhau :

  • Trường hợp khai báo con trỏ để trỏ tới biến kiểu nguyên: int *p_i;
  • Trường hợp khai báo con trỏ C++ kiểu int, biến val (không phải con trỏ) cũng kiểu int: int *p, val;
  • Trường hợp khai báo con trỏ để trỏ tới biến kiểu thực: float *p_f;
  • Trường hợp khai báo con trỏ để trỏ tới biến kiểu ký tự: char *p_char;
  • Trường hợp khai báo con trỏ kiểu void (không kiểu): void *p_v;

Gán địa chỉ vào con trỏ trong C

Bạn chỉ nên gán địa chỉ cho con trỏ sau khi đã khai báo nó thành công xuất sắc. Nếu chưa khai báo mà bạn đã gán giá trị thì con trỏ đó sẽ tương tự như một biến rác, hoàn toàn có thể làm lỗi mạng lưới hệ thống khi khởi chạy. Phiền phức hơn, nếu con trỏ đó bị trỏ đến một biến quan trọng, nó sẽ làm đảo lộn hàng loạt ứng dụng của bạn .Có 2 trường hợp để bạn gán địa chỉ cho con trỏ trong C :

  • Gán địa chỉ sau khi đã khai báo: Trong ví dụ dưới đây, giá trị được gán cho p là địa chỉ của value.

int * p, value ;value = 5 ;p = và value

  • Khai báo và gán địa chỉ đồng thời: Trong ví dụ dưới, hoạt động khai báo và gán giá trị cho p là địa chỉ của value được thực hiện cùng lúc.

int value = 5 ;int * p = và valueLưu ý rằng hoạt động giải trí khởi tạo và gán địa chỉ nên được triển khai cùng nhau. Nếu con trỏ bạn định khởi tạo là dạng void, nó hoàn toàn có thể được trỏ tới bất kể địa chỉ của bất kể biến hay kiểu tài liệu nào. Nếu bạn đã khai báo con trỏ rồi nhưng vẫn chưa biết gắn vào địa chỉ nào thì hay trỏ nó đến NULL bằng cú pháp int * p = NULL. Khi đó con trỏ sẽ vô hại với giá trị bằng 0 .Cấu tạo của con trỏ C

Mối quan hệ giữa con trỏ và mảng động trong C + +

Biến con trỏ và mảng động trong C + + có một mối liên hệ rất lớn. Trước hết ta sẽ đi nhanh về những định nghĩa cơ bản. Biến động còn được gọi là biến cấp phát động. Nó được hiểu như một kiểu tài liệu dùng để định nghĩa. Nó không có tên mà cũng không được khai báo trong vùng biến. Biến động không được link với bất kể biến nào. Để quản trị nó, người ta sẽ dùng con trỏ trong C + + .Vì dịch chuyển không có tên hay phần khai báo nên con trỏ sẽ quản trị những biến cấp phát động trong C + +. Khi đó ta gọi nó là biến con trỏ. Để mở màn cấp phép vùng nhớ cho một vùng nhớ, ta sẽ triển khai như sau :

new ;

Ví dụ thực tiễn :new int ;new float ;Khi cấp phép thành công xuất sắc, con trỏ sẽ tự động hóa trỏ đến dịch chuyển. Vì dịch chuyển không có địa chỉ, ta phải gắn địa chỉ của nó lên con trỏ như sau :int * ptr = new int ;Lúc này, con trỏ đã được trỏ tới dịch chuyển kiểu int .Ngoài ra, bạn cũng hoàn toàn có thể khai báo là khởi tạo giá trị cùng lúc như sau :int * ptr1 = new int ( 2409 ) ;Nếu muốn xóa vùng nhớ của dịch chuyển, ta sẽ dùng toán tử delete. Cú pháp mẫu như sau :

delete ;

Ví dụ trong thực tiễn : delete ptr_a ;Hướng dẫn sử dụng con trỏ

>>>Mời bạn tham khảo thêm:

Kết luận

Qua bài viết trên, hẳn là bạn đọc đã biết thêm được rất nhiều thông tin hữu dụng xoay xung quanh chủ đề về con trỏ trong C. Nhìn chung, con trỏ trong C có tương quan mật thiết đến rất nhiều nghành nghề dịch vụ khác nhau tại cấp phát động trong C. Vì thế để thao tác thành thạo với ngôn từ lập trình C + +, con trỏ là phần bạn phải hiểu rõ. Những khái niệm như địa chỉ ô nhớ hay cách khai báo, cách gán biến nhớ chỉ là những kiến thức và kỹ năng cơ bản và đơn thuần nhất. Phạm vi kiến thức và kỹ năng mà con trỏ C mang đến còn rất nhiều, đòi khỏi người học phải biết tự tìm tòi và rèn luyện cần mẫn .

Mời bạn đọc tìm hiểu thêm thêm : Hadoop là gì ?

Tuy nhiên bạn đừng nản chí bởi con trỏ C là phần không quá khó nếu được rèn luyện nhiều lần. Đây cũng là phần mà bất kể lập trình viên nào cũng cần thông thuộc. Vì thế bên cạnh những kiến thức và kỹ năng mà Teky cung ứng, hãy chịu khó tìm đọc thêm nhiều tài liệu nâng cao hơn về con trỏ C nhé. Rất nhiều thông tin hữu dụng được biên soạn lại bằng tiếng Việt, vì vậy bạn cũng không cần lo ngại không tìm được tài liệu dễ hiểu. Chúc bạn đọc nhanh gọn làm chủ được phần kiến thức và kỹ năng xung quanh con trỏ C + + .

tin tức cơ bản về Học viện chuyên đào tạo và giảng dạy công nghệ tiên tiến và lập trình – Teky

TEKY là Học viện sáng tạo công nghệ với chương trình giảng dạy STEAM (Science – Technology – Engineering – Art – Mathematics) theo chuẩn Mỹ đầu tiên tại Việt Nam dành cho trẻ em từ 4 đến 18 tuổi.

Được xây dựng vào tháng 6 năm năm nay, TEKY quyết tâm thực thi thiên chức mang đến cho thế hệ trẻ Nước Ta kỹ năng và kiến thức tổng lực về STEAM, đặc biệt quan trọng là những tư duy công nghệ tiên tiến, khoa học máy tính và kiến thức và kỹ năng thế kỷ 21 – 4C s ( Critical Thinking : Tư duy phản biện – Communication : Giao tiếp – Creativity : Sáng tạo – Collaboration : Làm việc nhóm ) .

Đây là chương trình không chỉ trang bị kỹ năng và kiến thức lập trình mà còn rèn luyện nhóm kỹ năng và kiến thức 4C s. Trẻ sẽ được :

Các bộ môn giảng dạy tại Teky gồm : Lập trình và tăng trưởng ứng dụng, lập trình game, lập trình web với python Lập trình Scratch Robotics Engineering, Công nghệ 3D và MultiMedia. Chúng tôi tin rằng trẻ nhỏ Nước Ta có thời cơ tăng trưởng can đảm và mạnh mẽ trong một nền kinh tế tài chính số và cần được trang bị chuẩn bị sẵn sàng để trở thành những người kinh doanh công nghệ tiên tiến trong tương lai .

Liên hệ ngay học viện công nghệ sáng tạo TEKY để được tư vấn khóa học:

  • Cam kêt 7 tuổi hoàn toàn có thể lập trình
  • Top 10 dự án Bất Động Sản giáo dục có tầm ảnh hưởng tác động nhất Khu vực Đông Nam Á 2017 và 2018
  • Top 3 Dự án xuất sắc nhất, NextGen – Thụy Sĩ
  •  Hotline Hà Nội: 024-7109-6668 | 0975-241-015

  • đường dây nóng Hồ Chí Minh : 028 – 7109 9948 | 097-900-8642

Website https://livesharewiki.com | E-Mail : [email protected] |

Related Posts

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 *