在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于C語言中指針的基本用法解析

GReq_mcu168 ? 2018-01-09 15:12 ? 次閱讀

很多初學(xué)者會(huì)發(fā)出這樣的感慨:我C語言中其它的知識(shí)都學(xué)得可以,唯獨(dú)指針搞不懂。如果是這樣,我可以很負(fù)責(zé)的告訴你,對于這門編程語言,你等于是沒學(xué)。所以學(xué)好指針對于初學(xué)者是非常重要的。或許你會(huì)覺得它有點(diǎn)抽象,但是當(dāng)你徹底理解了指針的含義,你會(huì)發(fā)現(xiàn)指針用起來特別方便。

今天我就很膚淺的說一下指針的幾種用法:

1、指針指向變量:

下面有這樣一個(gè)代碼塊:

int main()

{int a=10;int b=15;test(a,b);printf("a=%d,b=%d ",a,b);}

void test(int x,int y)

{int tmp;tmp=x;x=y;y=tmp;}

最后輸出的結(jié)果還是a=10,b=15。因?yàn)樵诤瘮?shù)調(diào)用時(shí),實(shí)參和形參之間只是值傳遞。但我們使用指針結(jié)果就不一樣了,如:

int main()

{int a=10;int b=15;test(&a,&b);printf("a=%d,b=%d ",a,b);return 0;}

void test(int * x,int *y)

{int tmp;tmp=*x;*x=*y;*y=tmp;}

輸出結(jié)果a=15,b=10。變量a和b的值發(fā)生了交換。這是因?yàn)槲覀兝弥羔樤L問變量的存儲(chǔ)單元,間接修改變量的值。

2、指針指向數(shù)組:

定義一個(gè)數(shù)組并初始化,int array[5]={2,5,12,7,8},定義一個(gè)指針變量并把數(shù)組的地址賦給它,int *p=array,注意數(shù)組名就是數(shù)組的地址,而且數(shù)組的地址就是首元素的地址。因此我們的指針變量就指向了數(shù)組的首元素,*p=2。如果把(p+1),那么指針變量就指向了數(shù)組的下一個(gè)元素5,因此我們可以利用指針來遍歷數(shù)組的各個(gè)元素:

int main()

{int array[5]={2,5,12,7,8};int *p =array;for(int i=0;i<5;i++){printf("array[%d]=%d ",i,*(p+i));}return 0;}

3、指針指向字符串:

我們都知道用數(shù)組存儲(chǔ)字符串,如char name[20]="jack",上面已經(jīng)簡單講述了指針指向數(shù)組,所以我們可以這樣做,char *name="jack",指針變量指向字符串的首個(gè)字符并可以依次訪問字符串的各個(gè)字符。

4,指針指向函數(shù):

我們需要知道怎樣表示一個(gè)指針指向函數(shù),說白了就是語法要正確,下面我也取一個(gè)代碼塊來說明一下:

int sum(int x,int y)

{return x+y;}

int main()

{int a=5;int b=6;int (*p)(int,int);p=sum;int result=(*p)(a,b);printf("The result is %d ",result);return 0;}

不難發(fā)現(xiàn)上面代碼塊里語句(*p)(a,b)可以用p(a,b)來代替,因?yàn)閜和sum就是一樣的,只是用前者可能更容易理解一點(diǎn)。而我們要知道怎樣定義一個(gè)指針指向函數(shù),int (*p)(int,int)這是固定寫法,前面的int是指針將來指向的函數(shù)的返回值的類型,如果沒有函數(shù)返回值,那就是void,后面括號(hào)里的兩個(gè)int 當(dāng)然就是指針將指向的函數(shù)的形參。指針指向函數(shù)用起來確實(shí)有點(diǎn)抽象,要想熟練運(yùn)用的話就多去做一些這方面的練習(xí)吧!

5,指針指向結(jié)構(gòu)體:

我們首先首先定義一個(gè)結(jié)構(gòu)類型,

struct student

{

char *name;

int ages;

};

再根據(jù)類型定義結(jié)構(gòu)體變量 struct student stu={"Rose",15};定義一個(gè)指針指向結(jié)構(gòu)體類型,struct student *p;把結(jié)構(gòu)體變量stu的地址賦給指針變量p,p=&stu;我們可以有3種方式來訪問結(jié)構(gòu)體中的屬性ages:

stu.ages=15;(*p).ages=15;p->ages=15;不過第三種方式在C語言中只能用來指向結(jié)構(gòu)體。

綜上所述,指針的基本用法就是這幾種,還有些用法不常見的小編在此就一一例舉了,有興趣的話可以去翻閱相關(guān)的資料。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7628

    瀏覽量

    139669
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    484

    瀏覽量

    70903

原文標(biāo)題:C語言中指針的幾種用法

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    C語言中指針變量的使用

      在使用時(shí),一定要注意上面“*“號(hào)的用法差異。還需要注意的是,一個(gè)指針變量只能指向與其數(shù)據(jù)類型相同的變量。
    發(fā)表于 08-15 15:12 ?2355次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中指針</b>變量的使用

    C語言中指針的定義

    上一節(jié)中,我們利用了一個(gè)小知識(shí)來介紹了一下指針,在上面這個(gè)例子中,小明和小麗手中的這個(gè)杯子就好比我們C語言中的變量,它確實(shí)是實(shí)實(shí)在在存放一些有具體意義的數(shù)據(jù)。這個(gè)杯套就類似于C
    發(fā)表于 08-15 16:24 ?1959次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中指針</b>的定義

    C語言中指針的命令行參數(shù)

    指針C語言最重要也是最難理解的部分,它在我們平時(shí)的工作中無處不在。
    的頭像 發(fā)表于 09-26 10:18 ?1313次閱讀

    C語言中void指針的基本認(rèn)識(shí)及典型應(yīng)用

    C語言中,*類型就是指針類型,比如 int *p,double *q,雖然是不一樣的指針,但是大小卻一樣sizeof(p) == sizeof(q),因?yàn)樗鼈兌际峭环N類型*類型的。
    發(fā)表于 02-01 09:26 ?1279次閱讀

    C語言中指針函數(shù)和函數(shù)指針的概念及應(yīng)用示例

    C語言中指針函數(shù)和函數(shù)指針是強(qiáng)大且常用的工具。它們允許我們以更靈活的方式處理函數(shù)和數(shù)據(jù),進(jìn)而擴(kuò)展程序的功能。
    發(fā)表于 08-16 16:14 ?1428次閱讀

    C語言中多級指針的概念和使用方法

    多級指針C語言中是一種特殊的指針類型,它可以指向其他指針指針
    發(fā)表于 08-16 16:16 ?1384次閱讀

    C語言中指針的基本概念和用法

    C語言中指針是一項(xiàng)重要的概念,它允許我們直接訪問和操作內(nèi)存地址。
    發(fā)表于 08-17 15:30 ?1033次閱讀

    談?wù)?b class='flag-5'>C語言中指針有什么好處,請各位高手們談?wù)勛约旱捏w會(huì)

    談?wù)?b class='flag-5'>C語言中指針有什么好處,請各位高手們談?wù)勛约旱捏w會(huì)...
    發(fā)表于 09-01 17:38

    語言中指針的介紹

    的內(nèi)容。在C語言中, 允許用一個(gè)變量來存放指針,這種變量稱為指針變量。因此,一個(gè)指針變量的值就是某個(gè)內(nèi)存單元的地址或稱為某內(nèi)存單元的指針。圖
    發(fā)表于 09-10 14:22

    C語言中指針是什么?如何規(guī)避野指針

    C語言中指針是什么?有哪幾種類型?指針有何作用?如何規(guī)避野指針
    發(fā)表于 02-25 06:47

    C語言中指針的介紹非常詳細(xì)

    C語言中指針的介紹非常詳細(xì) C語言中指針的介紹非常詳細(xì)
    發(fā)表于 12-25 10:39 ?57次下載

    C語言中指針(重點(diǎn))超詳細(xì)

    C語言中指針1、指針是什么2、指針指針類型2.1、指針
    發(fā)表于 01-13 14:10 ?11次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>的<b class='flag-5'>指針</b>(重點(diǎn))超詳細(xì)

    C語言進(jìn)階】C語言指針的高階用法

    C語言進(jìn)階】C語言指針的高階用法
    的頭像 發(fā)表于 08-31 13:24 ?2603次閱讀

    C語言中什么是指針數(shù)組

    C語言中一個(gè)數(shù)組,若其元素均為指針類型數(shù)據(jù),稱為指針數(shù)組,也就是說,指針數(shù)組中的每一個(gè)元素都存放一個(gè)地址,相當(dāng)于一個(gè)
    的頭像 發(fā)表于 03-10 15:26 ?2097次閱讀

    簡述C語言中指針重點(diǎn)

    C語言中一個(gè)函數(shù)可以返回一個(gè)整型值、字符值、實(shí)型值等,也可以返回指針型的數(shù)據(jù),即地址,其概念與以前類似,只是返回的值的類型是指針類型。
    的頭像 發(fā)表于 03-10 15:28 ?744次閱讀
    主站蜘蛛池模板: 亚洲卡一卡2卡三卡4卡国色 | 成人夜夜 | 免费视频亚洲 | 99久久国产综合精品国 | 天天干天天摸天天操 | 国产亚洲精品自在久久77 | www.99色| 日本级毛片免费观看 | 欧美一级欧美三级在线 | 欧美性受一区二区三区 | 丁香视频在线观看播放 | 欧美福利一区 | 69pao强力打造在线 | 日日操夜夜操狠狠操 | 伊人久久大香线焦在观看 | 国产香蕉视频在线观看 | 俺来色 | 成人女人a毛片在线看 | 日韩免费高清一级毛片 | 午夜在线视频观看版 | 日本一区二区三区四区视频 | 中国一级特黄特级毛片 | 欧美特黄视频在线观看 | 午夜黄视频| 人人做人人插 | 欧美疯狂爱爱xxxxbbbb | 国产ccc | 亚洲伊人色一综合网 | 夜夜夜夜夜夜夜猛噜噜噜噜噜噜 | 精品一区二区三区自拍图片区 | 成人一级毛片 | 久久成人国产精品免费 | 六月婷婷在线视频 | 在线www| 91美女在线播放 | 黄色一及毛片 | 国产一级做a爰大片免费久久 | 亚洲人成电影在线小说网色 | 操夜夜| 开心激情播播网 | 操美女大逼逼 |