五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

一題吃透C語言指針與數(shù)組,一招助你理解C語言難點(diǎn)指針的運(yùn)算

2020-05-12 17:04 作者:C語言基礎(chǔ)  | 我要投稿



前言

本文主要介紹的是C語言指針知識,希望對于廣大讀者學(xué)習(xí)C語言有一些幫助。深入了解C語言指針小知識,先看題算結(jié)果:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int ?array[3][4] =
{ 1, 2, 3,
4, 5, 6,
7, 8, 9,
10, 11, 12
};
int(*pArray)[4] = array;
printf("%d ", *(pArray[0] + 1));
printf("%d ", **(pArray + 1));
pArray++;
printf("%d ", *(*pArray + 1));
system("pause");
return 0;
}

指針,是C語言中的一個(gè)重要概念及其特點(diǎn),也是掌握C語言比較困難的部分,這道題目就很有效的考驗(yàn)了一個(gè)人對于指針的運(yùn)算與C語言數(shù)組的掌握。

知識解析

主要使用到的知識如下:

  1. C語言數(shù)組指針: 一個(gè)指向數(shù)組的指針

  2. C語言中指針如何表示二維數(shù)組

  3. C語言指針的的運(yùn)算: p+n的理解

數(shù)組指針

即是指向數(shù)組的指針。例:int (*p)[4]; p即為指向數(shù)組的指針,又稱數(shù)組指針。數(shù)組指針是指向數(shù)組地址的指針,其本質(zhì)為指針;指針數(shù)組是數(shù)組元素為指針的數(shù)組(例如 int *p[3],定義了p[0],p[1],p[2]三個(gè)指針),其本質(zhì)為數(shù)組。數(shù)組指針的使用在某些情況下與指針數(shù)組很相似,要注意區(qū)別。

指針如何表示數(shù)組

一維數(shù)組中有如下重點(diǎn):


當(dāng)一級指針p指向數(shù)組array時(shí),*(p+i)等效于array[i] 等效于p[i]

二維數(shù)組中有如下重點(diǎn):


C語言指針運(yùn)算

指針p+n 解釋為:?p+sizeof(指針?biāo)赶虻念愋?*n;說到這里不得不講下C語言指針中的兩個(gè)重要類型了。如果存在指針 int *p 則有如下兩個(gè)類型:

  1. 指針的類型: 去掉變量 ,剩下的就是類型,故是 int *;

  2. 指針?biāo)赶虻念愋? 去掉*和變量名即可得到地址對應(yīng)的內(nèi)存中的存儲的數(shù)據(jù)類型,即int類型。

故對于 int(*p)[3] 的p+1操作 應(yīng)該理解為:p+sizeof(int[3])*1;

題目分析:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int ?array[3][4] =
{ ? 1, 2, 3,4,
? ?5, 6, 7,8,
?9, 10, 11, 12
};
int(*pArray)[4] = array;
printf("%d ", *(pArray[0] + 1));
printf("%d ", **(pArray + 1));
pArray++;
printf("%d", *(*pArray + 1));
system("pause");
return 0;
}

*(pArray[0] + 1))代表 array[0][1] ,故打印2;

(pArray + 1) 移動(dòng)的字節(jié)數(shù): pArray+sizeof(int[4])*1,表示第一行(數(shù)組從第0行開始計(jì)數(shù))第一個(gè)位置的地址,故**(pArray + 1) 得到的應(yīng)該是第1行第一個(gè)元素,即打印5

pArray++后 pArray示第一行(數(shù)組從第0行開始計(jì)數(shù))第一個(gè)位置的地址 ,而在數(shù)組中p[0] 并不一定表示第0行或者第0列哦,而是以p的當(dāng)前地址中的偏移位置,故*(*pArray + 1)代表當(dāng)前地址的第1個(gè)元素,故打印6 。綜上打印結(jié)果是2 5 6 。

運(yùn)行測試



尾言

文章都是手打原創(chuàng),每天最淺顯的介紹C語言、C++,windows知識,喜歡我的文章就關(guān)注一波吧,每天帶你學(xué)習(xí)C/C++不同的知識,也可以看到最新更新和之前發(fā)表的文章哦。


一題吃透C語言指針與數(shù)組,一招助你理解C語言難點(diǎn)指針的運(yùn)算的評論 (共 條)

分享到微博請遵守國家法律
新源县| 虎林市| 威信县| 太仆寺旗| 永平县| 东港市| 和平县| 泰安市| 满洲里市| 逊克县| 万安县| 会东县| 德令哈市| 麻城市| 吐鲁番市| 漳平市| 邯郸市| 沈丘县| 衡水市| 卫辉市| 文登市| 双鸭山市| 延庆县| 闵行区| 沁源县| 平武县| 崇明县| 南江县| 湄潭县| 邵阳市| 罗田县| 卓尼县| 同德县| 个旧市| 特克斯县| 铜梁县| 花垣县| 岳阳县| 通城县| 体育| 木里|