tek4

Con trỏ và cấu trúc trong C++

by - September. 26, 2021
Kiến thức
Học
<p>Con trỏ v&agrave; cấu tr&uacute;c trong C++ l&agrave; hai kh&aacute;i niệm cơ bản v&agrave; được sử dụng trong nhiều mục đ&iacute;ch kh&aacute;c nhau. Trong b&agrave;i viết n&agrave;y, ta sẽ c&ugrave;ng t&igrave;m hiểu về c&aacute;c v&iacute; dụ c&oacute; li&ecirc;n quan tới con trỏ để truy cập dữ liệu trong một cấu tr&uacute;c nhất định.</p> <p>Một biến con trỏ c&oacute; thể được tạo kh&ocirc;ng chỉ cho c&aacute;c kiểu dữ liệu như int, float, double, m&agrave; c&ograve;n c&oacute; thể được tạo với c&aacute;c kiểu dữ liệu do người d&ugrave;ng x&aacute;c định như struct.</p> <p>Cũng giống như c&aacute;c con trỏ kh&aacute;c, con trỏ cho cấu tr&uacute;c được khai b&aacute;o bằng c&aacute;ch đặt dấu hoa thị (*) trước t&ecirc;n của n&oacute;.</p> <p><strong><em>C&uacute; ph&aacute;p:</em></strong></p> <pre class="language-markup"><code>t&ecirc;n_cấu_tr&uacute;c *t&ecirc;n_con_trỏ;</code></pre> <p>C&oacute; hai c&aacute;ch sử dụng của con trỏ cho cấu tr&uacute;c:</p> <ol> <li>Tạo một lời gọi bằng c&aacute;ch gọi tham chiếu đến một h&agrave;m.</li> <li>Tạo c&aacute;c cấu tr&uacute;c dữ liệu động như danh s&aacute;ch li&ecirc;n kết, ngăn xếp, h&agrave;ng đợi, c&acirc;y,... bằng c&aacute;ch sử dụng hệ thống cấp ph&aacute;t động của C ++.</li> </ol> <p>V&iacute; dụ: Tạo một con trỏ c&oacute; kiểu cấu tr&uacute;c</p> <pre class="language-cpp"><code>#include &lt;iostream&gt; using namespace std; struct sinh_vien { char ten[20]; int tuoi; }; int main() { sinh_vien *con_tro; return 0; }</code></pre> <p>Chương tr&igrave;nh b&ecirc;n tr&ecirc;n đ&atilde; khởi tạo một con trỏ c&oacute; kiểu dữ liệu l&agrave; cấu tr&uacute;c sinh_vien</p> <p>V&iacute; dụ 2:</p> <pre class="language-cpp"><code>#include &lt;iostream&gt; using namespace std; struct sinh_vien{ char ten[20]; int tuoi; }; int main(){ sinh_vien *con_tro, sv1; con_tro = &amp;sv1; cout &lt;&lt; "Nhap ten: "; cin.get((*con_tro).ten, 20);; cout &lt;&lt; "Tuoi: "; cin &gt;&gt; (*con_tro).tuoi; cout &lt;&lt; "Thong tin sinh vien." &lt;&lt; endl; cout &lt;&lt; "Ten: " &lt;&lt; (*con_tro).ten &lt;&lt; endl &lt;&lt; "Tuoi:" &lt;&lt;(*con_tro).tuoi; return 0; }</code></pre> <p>Kết quả:</p> <pre class="language-markup"><code>Nhap ten: Tran A Tuoi: 13 Thong tin sinh vien. Ten: Tran A Tuoi:13</code></pre> <p>Trong chương tr&igrave;nh tr&ecirc;n, một biến con trỏ con_tro v&agrave; một biến cấu tr&uacute;c sv1 của cấu tr&uacute;c sinh_vien được x&aacute;c định. Địa chỉ của biến sv1 được lưu v&agrave;o biến con trỏ, tức l&agrave; con_tro đang trỏ tới biến sv1. Sau đ&oacute;, c&aacute;c biến của cấu tr&uacute;c được truy cập bằng con trỏ.</p> <p><strong>Ch&uacute; &yacute;: V&igrave; con trỏ con_tro đang trỏ đến biến sv1 trong chương tr&igrave;nh n&agrave;y, (* con_tro) .ten v&agrave; sv1.ten l&agrave; ch&iacute;nh x&aacute;c c&ugrave;ng một địa chỉ. V&agrave; tương tự với (*con_tro).tuoi v&agrave; sv1.tuoi c&ugrave;ng trỏ tới một địa chỉ.</strong></p> <p>C&uacute; ph&aacute;p để truy cập biến trong cấu tr&uacute;c bằng c&aacute;ch sử dụng con trỏ c&oacute; k&yacute; hiệu thay thế l&agrave; &rarr;, được sử dụng phổ biến hơn.</p> <ul> <li>con_tro &rarr; ten giống với (*con_tro).ten</li> <li>con_tro &rarr; tuoi giống với (*con_tro).tuoi</li> </ul> <p>Tr&ecirc;n đ&acirc;y l&agrave; kh&aacute;i niệm v&agrave; v&iacute; dụ cơ bản về con trỏ v&agrave; cấu tr&uacute;c trong C++. Hy vọng mọi người c&oacute; thể &aacute;p dụng v&agrave;o trong chương tr&igrave;nh của m&igrave;nh. Mọi người h&atilde;y tiếp tục theo d&otilde;i c&aacute;c b&agrave;i mới nhất tr&ecirc;n <a href="http://tek4.vn">tek4</a> nh&eacute;!</p> <hr /> <p style="text-align: center;"><em><strong>Fanpage Facebook:</strong>&nbsp;<a href="https://www.facebook.com/tek4.vn/">TEK4.VN</a></em>&nbsp;</p> <p style="text-align: center;"><em><strong>Tham gia cộng đồng để chia sẻ, trao đổi v&agrave; thảo luận:</strong>&nbsp;<a href="https://www.facebook.com/groups/tek4.vn/">TEK4.VN - Học Lập Tr&igrave;nh Miễn Ph&iacute;</a></em></p>