<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Con trỏ trong C</title>
<meta name="description" content="Con trỏ trong C - Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;con-tro-trong-c-6571.html">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Con trỏ trong C">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;con-tro-trong-c-6571.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/con-tro-trong-c-6571.html">
<link rel="shortcut icon" href="https://www.nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/con-tro-trong-c-6571.html">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://www.nguoicodonvn2008.info/">https://www.nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Con trỏ trong C</h1>
		<ul class="list-inline">
			<li>Thứ sáu - 06/01/2023 23:47</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
				<div class="imghome">
			<img alt="Con trỏ trong C" src="https://st.quantrimang.com/photos/image/2018/08/29/ham-getchar-trong-c-200-size-80x80-znd.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p><strong>Con trỏ trong C là gì? Ý nghĩa của con trỏ trong C như thế nào?&nbsp;</strong>Hãy cùng Quantrimang.com tìm hiểu nhé!</p>

<p><strong>Con trỏ - Pointer</strong>&nbsp;trong&nbsp;ngôn ngữ C&nbsp;rất dễ học. Một vài tác vụ trong ngôn ngữ C được thực hiện dễ dàng hơn nhờ con trỏ, và những tác vụ khác trở nên linh hoạt hơn, như trong việc cấp phát bộ nhớ, không thể thực hiện mà không dùng con trỏ. Do đó rất cần thiết phải nắm vững con trỏ khi trở thành một lập trình viên C hoàn thiện. Bây giờ hãy bắt đầu bằng những bước đơn giản nhất.</p>

<p>Như bạn biết, mỗi biến trong một vùng nhớ nhất định và mỗi vùng nhớ này có địa chỉ có nó được định nghĩa để dễ dàng trong việc truy cập sử dụng toán tử (&amp;), tương ứng với địa chỉ của nó trong bộ nhớ. Xem xét ví dụ dưới đây, sẽ in ra địa chỉ của biến được định nghĩa:</p>

<pre id="pre0">
#include &lt;stdio.h&gt;

int main ()
{
   int  bien1;
   char bien2&#91;25&#93;;

   printf(&quot;Dia chi cua bien1 la: %x\n&quot;, &amp;bien1  );
   printf(&quot;Dia chi cua bien2 la: %x\n&quot;, &amp;bien2  );
   printf(&quot;\n===========================\n&quot;);
   printf(&quot;QTM chuc cac ban hoc tot! \n&quot;);

   return 0;
}</pre>

<p>Biên dịch và chạy chương trình C để xem kết quả:</p>

<p>Do đó bạn hiểu thế nào là địa chỉ bộ nhớ và cách truy cập nó, đó là phần định nghĩa cơ bản. Bây giờ hãy xem thế nào là một con trỏ.</p>

<h2>Con trỏ là gì?</h2>

<p>Một pointer hay con trỏ trong C là biến chứa địa chỉ bộ nhớ của biến khác dưới dạng giá trị của nó.</p>

<p>Một biến con trỏ trỏ tới một kiểu dữ liệu (như<code>&nbsp;int</code>) của cùng một kiểu và được tạo với toán tử&nbsp;<code>*</code>. Địa chỉ của biến bạn đang làm việc được gắn với con trỏ đó. Ví dụ:</p>

<pre id="pre1">
#include &lt;stdio.h&gt;

int main() {
int myAge = 43; // Một biến int
int* ptr = &amp;myAge; // Một biến con trỏ, với tên ptr, chứa địa chỉ myAge

// Đầu ra giá trị của myAge (43)
printf(&quot;%d\n&quot;, myAge);

// Đầu ra địa chỉ bộ nhớ của myAge (0x7ffe5367e044)
printf(&quot;%p\n&quot;, &amp;myAge);

// Đầu ra địa chỉ bộ nhớ của myAge với con trỏ (0x7ffe5367e044)
printf(&quot;%p\n&quot;, ptr);

return 0;
}</pre>

<p><strong>Giải thích ví dụ:</strong></p>

<p>Tạo một biến con trỏ với tên ptr, trỏ tới biến&nbsp;<code>int</code>&nbsp;(myAge). Lưu ý rằng kiểu con trỏ phải khớp với kiểu biến bạn đang làm việc cùng.</p>

<p>Dùng toán tử&nbsp;<code>&amp;</code>&nbsp;để lưu địa chỉ bộ nhớ của biến myAge, và gắn nó với con trỏ này.</p>

<p>Giờ,&nbsp;<code>ptr</code>&nbsp;chứa giá trị địa chỉ bộ nhớ của myAge.</p>

<h2>Cách sử dụng con trỏ trong C?</h2>

<p>Có một vài phép toán quan trọng, sẽ giúp chúng ta làm việc với con trỏ một cách thường xuyên:&nbsp;<strong>a)</strong>&nbsp;chúng ta định nghĩa biến con trỏ,&nbsp;<strong>b)</strong>&nbsp;gán địa chỉ của biến đến một con trở và&nbsp;<strong>c)</strong>&nbsp;cuối cùng truy cập các giá trị biến địa chỉ trong biến con trỏ. Điều này được thực hiện bởi toán tử * trả về giá trị các các biến chứa trong địa chỉ được xác định bởi toán tử này. Dưới đây là các sử dụng những phép toán trên:</p>

<pre id="pre2">
#include &lt;stdio.h&gt;

int main ()
{
   int  bien = 20;   /* phan khai bao bien thuc su */
   int  *contro;        /* phan khai bao bien con tro */

   contro = &amp;bien;  /* luu tru dia chi cua bien trong con tro */

   printf(&quot;Dia chi cua bien la: %x\n&quot;, &amp;bien  );

   /* dia chi duoc luu tru trong bien con tro */
   printf(&quot;Dia chi duoc luu tru trong bien contro la: %x\n&quot;, contro );

   /* Truy cap gia tri boi su dung con tro */
   printf(&quot;Gia tri cua bien *contro la: %d\n&quot;, *contro );
   printf(&quot;\n===========================\n&quot;);
   printf(&quot;QTM chuc cac ban hoc tot! \n&quot;);

   return 0;
}</pre>

<p>Biên dịch và chạy chương trình C để xem kết quả:</p>

<h2>Con trỏ NULL trong C</h2>

<p>Có một cách thực hành tốt khi chúng ta gán giá trị NULL cho biến con trở trong trường hợp bạn không có địa chỉ chính xác để được gán. Điều này thường xảy ra trong quá trình khai báo. Một con trỏ được gán giá trị NULL được gọi là con trỏ&nbsp;<strong>null</strong>.</p>

<p>Con trỏ null là một hằng số với giá trị 0 được định nghĩa trong một vài thư viện chuẩn. Xem chương trình dưới đây:</p>

<pre id="pre3">
#include &lt;stdio.h&gt;

int main ()
{
   int  *contro = NULL;

   printf(&quot;Gia tri cua contro la: %x\n&quot;, contro  );
   return 0;
}</pre>

<p>Biên dịch và chạy chương trình C trên sẽ cho kết quả:</p>

<pre id="pre4">
Gia tri cua contro la: 0</pre>

<p>Trong hầu hết các hệ thống, chương trình không cho phép truy cập và ô nhớ có địa chỉ 0 bởi vì bộ nhớ này dùng để dự trữ cho hệ điều hành. Nếu con trỏ tới giá trị null, nó được coi là không trỏ tới đâu cả.</p>

<p>Để kiểm tra có phải là con trỏ null hay không bạn có thể sử dụng lệnh if như sau:</p>

<pre id="pre5">
if(contro)     /* la true neu contro khong phai la null */
if(!contro)    /* la true neu contro la null */</pre>

<h2>Chi tiết về con trỏ trong C</h2>

<p>Con trỏ có nhiều nhưng dễ dàng trong việc định nghĩa và rất quan trọng trong lập trình ngôn ngữ C. Dưới đây là những định nghĩa quan trọng mà rõ ràng về con trỏ trong ngôn ngữ lập trình C:</p>

<table border="2" cellpadding="2">
	<tbody>
		<tr>
			<th>Khái niệm</th>
			<th>Mô tả</th>
		</tr>
		<tr>
			<td>
			<p>Con trỏ số học trong C</p>
			</td>
			<td>Có 4 toán tử đại số mà có thể được sử dụng trên các con trỏ là: ++, --, +, -</td>
		</tr>
		<tr>
			<td>
			<p>Mảng các con trỏ trong C</p>
			</td>
			<td>Bạn có thể định nghĩa các mảng để giữ các con trỏ.</td>
		</tr>
		<tr>
			<td>
			<p>Con trỏ trỏ tới con trỏ trong C</p>
			</td>
			<td>C cho phép bạn trỏ tới một con trỏ ...</td>
		</tr>
		<tr>
			<td>
			<p>Truyền các con trỏ tới hàm trong C</p>
			</td>
			<td>Truyền một tham số bởi tham chiếu hoặc địa chỉ: cả hai cho các tham số được truyền khả năng có thể được thay đổi trong hàm gọi bởi hàm được gọi.</td>
		</tr>
		<tr>
			<td>
			<p>Trả về con trỏ từ hàm trong C</p>
			</td>
			<td>C cho phép một hàm trả về một con trỏ tới biến cục bộ, biến tĩnh và cũng như bộ nhớ được cấp phát động.</td>
		</tr>
	</tbody>
</table>

<p>&nbsp;</p>
		</div>
				<div id="author">
						<p>
				<strong>Tác giả:</strong>
				Theo Tutorialspoint
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/con-tro-trong-c-6571.html" title="Con trỏ trong C">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/con-tro-trong-c-6571.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://www.nguoicodonvn2008.info/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
		</script>
		<div class="car-top">
  <span><img src="https://www.nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<div id="run_cronjobs" style="visibility:hidden;display:none;"><img alt="cron" src="/index.php?second=cronjobs&amp;p=b5K7BQLh" width="1" height="1" /></div>
<script src="https://www.nguoicodonvn2008.info/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://www.nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://www.nguoicodonvn2008.info",
            "logo": "https://www.nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>