<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>-Flyぁ梦- &#187; C&amp;C++</title>
	<atom:link href="http://blog.11034.org/category/coding/c-cpp/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.11034.org</link>
	<description></description>
	<lastBuildDate>Sun, 22 Jun 2025 08:59:05 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>C中的数组指针</title>
		<link>http://blog.11034.org/2013-04/array_pointer.html</link>
		<comments>http://blog.11034.org/2013-04/array_pointer.html#comments</comments>
		<pubDate>Wed, 03 Apr 2013 06:59:56 +0000</pubDate>
		<dc:creator><![CDATA[-Flyぁ梦-]]></dc:creator>
				<category><![CDATA[C&C++]]></category>
		<category><![CDATA[指针]]></category>
		<category><![CDATA[数组]]></category>

		<guid isPermaLink="false">http://blog.stariy.org/?p=1731</guid>
		<description><![CDATA[最近又粗粗看了遍C++ primer，又看到一些已然忘了或者以前都不知道的C特性，指针什么的真是太难以完全掌握 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>最近又粗粗看了遍C++ primer，又看到一些已然忘了或者以前都不知道的C特性，指针什么的真是太难以完全掌握了&gt;_&lt;。今天想了一个早上，终于算是明白了，赶紧写一篇博客给以后再忘记了的自己看&#8230;</p>
<h3>铺垫</h3>
<p>int A[10]; //一维int数组</p>
<p>A表示整个数组，sizeof(A) = sizeof(int) * 10；</p>
<p><span id="more-1731"></span></p>
<p>A也表示数组首地址，可以隐式地转化为第一个数组元素（一个int*）的指针，即*A == A[0];</p>
<h3>一维数组</h3>
<p>int A[10]; //用一维数组说明比较好明白，但是不常用</p>
<p>int (*p)[10] = &amp;A; //p就是数组指针，一个专指向 含有10个int的数组 的指针，所以对A取地址赋给p就对了</p>
<p>p[0] == *p == A; //p[0]相当于对p进行一次解引用的*(p + 0)，表示的都是原地址所在的那个数组A</p>
<p>p[0][1] == *(*p + 1) = A[1] //在上面一条的基础上，再看这个就好理解了，就是对数组的基本操作而已。因为数组和指针的隐式转化，可以进行一次解引用操作，变为数组元素，所以允许 **p的存在（<strong>第一次解引用，从数组指针-&gt;数组；第二次解引用，是数组名作为数组首地址隐式转化为指针然后解引用为数组元素</strong>），<span style="text-decoration: underline;">不能因2次解引用就说p是指针的指针</span>（就在这儿想了好久）。</p>
<h3>二维数组</h3>
<p>int B[10][10]; //再用二维数组说明，这个作为书上的例子，比较常用</p>
<p>int (*p)[10] = B; //二维数组名直接赋值，因为二维数组名相当于对一维数组取地址（类比：一维数组名相当于对其元素取地址；一维数组就是二维数组的元素！）</p>
<p>int (*p)[10] = &amp;B[0]; //与上面的赋值同样，这就是一维数组的赋值方法</p>
<p>p[0] == *p == B[0]; //都表示第一个一维数组，对它们进行sizeof()操作，结果都是40</p>
<p>p[2][3] == *(*(p + 2) + 3) == B[2][3] //对p数值计算，比如p++，步长为sizeof(int) * 10，跳过整个一维数组</p>
<h4  class="related_post_title">随便看一看</h4><ul class="related_post"><li>2010-12-14 -- <a target="_blank" href="http://blog.11034.org/2010-12/play_music_in_wordpress.html" title="wordpress中播放音乐">wordpress中播放音乐</a></li><li>2012-03-01 -- <a target="_blank" href="http://blog.11034.org/2012-03/learning_java-lang.html" title="java.lang包的一些学习心得">java.lang包的一些学习心得</a></li><li>2011-01-08 -- <a target="_blank" href="http://blog.11034.org/2011-01/search_engine.html" title="2个月的搜索引擎状况">2个月的搜索引擎状况</a></li><li>2010-08-17 -- <a target="_blank" href="http://blog.11034.org/2010-08/three_kingdom_love.html" title="三国情">三国情</a></li><li>2013-01-25 -- <a target="_blank" href="http://blog.11034.org/2013-01/winter_holiday_plan.html" title="zoj 200AC，寒假计划">zoj 200AC，寒假计划</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.11034.org/2013-04/array_pointer.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
