日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言 指针函数 详解,[NOTE-C]C语言指针详解(一)

發布時間:2025/4/5 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言 指针函数 详解,[NOTE-C]C语言指针详解(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言指針讓一切想法變成可能,強轉和指針可以看做一項呼風喚雨的利器,但是C語言中指針應用又需要格外的小心,其更靈活的利用內存,因為不當的應用可能引起各種異常,這篇文章就是讓我們一起來認識C指針,更好的利用C指針!

指針變量的定義初始化和解引用

內存如何編址?

內存中的每個字節都有唯一的編號(地址),內存地址按字節編號,其字長一般與主機相同,32位機器使用32位地址,最多支持2^32字節內存(4G)

地址是一個無符號整數,從0開始依次遞增,通常地址寫成16進制。

如何對變量進行尋址?

直接尋址

直接到變量名標示的存儲單元中讀取變量的值

scanf("%d", &a);//假如忘記寫&符號,a的值被當成地址。比如a為100,則會覆蓋內存中地址為100位置的值。

printf("a=%d\n",a);

間接尋址

通過其他變量間接地找到變量地址讀取變量的值

用什么類型來存儲地址? 指針Pointer類型

指針變量

具有指針類型的變量

保存32位地址值 sizeof(pa)是4個字節

用什么數據類型去理解他所指向的存儲單元中的數據呢?

int *pa; int *pa = &a

int 指針變量指向的數據類型 稱為基類型

指針變量的內容 &a

指針變量pa是變量a的指針

如何顯示變量的地址

使用%p格式符

變量指針只能指向同一基類型的變量

使用未初始化的指針會怎樣?

指針變量使用之前必須初始化

若不知指向哪里 那就指向NULL(stdio.h中 定義為0)

NULL是什么

空指針-值為NULL的指針 即無效指針

問題:p=0和p=NULL有什么區別

A:*p=NULL可以明確的說明p是指針變量,而不是數值型變量

問題:空指針就是指向地址為0的存儲單元的指針對么?

A:不一定,并非所有編譯器都是用0地址,某些編譯器為空指針適用不存在的內存地址

如何訪問指針變量指向的存儲單元中的數據

通過間接尋址運算符訪問(引用)指針變量指向的變量的值

指針的解引用(Pointer Dereference)

*pa

指針變量的定義和初始化

正確方式

int *pa,*pb;

錯誤方式

int *pa,pb;

需要嚴格注意區分

指針變量作為函數參數

指針變量的解引用如何理解

間接尋址運算符 此* 非彼*

只要pa指向a,*pa就是a的別名

指針變量做參數有何優勢

基本類型的變量做函數參數

Call By Value Passing arguments by value

實參變量的值->形參(parameter)

在被函數中不能改變實參的值

指針類型的變量做函數參數

Simulating Call by reference- Passing arguments by reference

是參變量的地址->指針形參(pointer parameter)

在被調函數中可以改變實參的值

Call by value

#include

void Fun(int par);

int main()

{

int arg = 1 ;

printf("arg = %d\n", arg);

Fun(arg);

printf("arg = %d\n", arg);

return 0;

}

void Fun(int par)

{

printf("par = %d\n", par);

par = 2;

return 0;

}

Call by reference

#include

void Fun(int *par);

int main()

{

int arg = 1 ;

printf("arg = %d\n", arg);

Fun(&arg);

printf("arg = %d\n", arg);

return 0;

}

void Fun(int *par)

{

printf("par = %d\n", *par);

*par = 2;

return 0;

}

指針變量作形參為函數

提供了修改實參值的手段

實戰:兩數交換

方案一:使用指針變量

需要注意

* 要傳遞地址給指針

* 實參形參數據類型要一致

* temp為整形 這里不要寫錯為指針類型

int main()

{

int a = 5, b = 9;

Swap(&a, &b);

printf("a=%d,b=%d",a,b);

return 0;

}

void Swap(int *x, int *y)

{

int temp;

temp = *x;

*x = *y;

*y = temp;

}

方案二:通過數組

數組這里也是傳引用

int main()

{

int a[2] = {5, 9};

Swap(a);

printf("%d,%d", a[0],

a[1]);

return 0;

}

void Swap(int p[])

{

int temp;

temp = p[0];

p[0] = p[1];

p[1] = temp;

}

想了解更多其他技術博文,后續更多文章可以在Montage GTD來訂閱RSS啦

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的c语言 指针函数 详解,[NOTE-C]C语言指针详解(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产亚洲女人久久久久毛片 | 韩国一区二区三区四区 | 污的视频在线观看 | 午夜视频www | 日本五十肥熟交尾 | www.久久.com| 女人被狂躁c到高潮喷水电影 | 日本在线一区 | www.天天综合 | xxxx国产片| 久久婷婷国产麻豆91天堂 | 国产成人久久精品77777综合 | 国内免费精品视频 | 波多野结衣乳巨码无在线观看 | av大片网址 | 国产一区二区三区播放 | 亚洲免费三区 | 伊人91在线 | 欧美123区| 亚洲一卡二卡三卡四卡 | 亚洲精品美女久久久 | 欧美丰满老熟妇xxxxx性 | 你懂的在线网站 | 69精品人人 | 日本123区 | 91综合网 | 成人午夜影院在线观看 | 亚洲综合av网 | 午夜视频精品 | 老女人做爰全过程免费的视频 | 成熟的女同志hd | 日本视频一区二区三区 | 国产真实乱人偷精品视频 | 日本精品三级 | 色欲狠狠躁天天躁无码中文字幕 | jizzjizz亚洲| 男人天堂成人网 | 日韩精品一区二区在线 | 中文字幕免费在线视频 | 黄色网址网站 | 天堂成人在线视频 | 国产精品久久在线观看 | 天天天操| 亚洲精品国产手机 | 欧美极度另类 | 国产av电影一区二区三区 | 少妇太紧太爽又黄又硬又爽小说 | 国产无套内射普通话对白 | 成年人免费看视频 | 国产做爰视频免费播放 | 国产成人福利视频 | 香蕉蜜桃视频 | 毛片高清免费 | 天天插天天射天天干 | 国产又粗又长视频 | 波多野结衣免费在线视频 | 91香蕉视频在线观看免费 | 黑人巨大精品欧美一区免费视频 | 日韩一区二区三区在线看 | 国产一区不卡视频 | 男女午夜爽爽 | 天天射天天操天天干 | 日韩xxx视频 | 国产精品午夜福利视频234区 | 日韩激情网址 | 美国黄色网址 | 成色视频| 亚洲国产成人一区 | 天天射狠狠干 | 国产精品无码午夜福利 | 一区二区手机在线 | 亚洲精品乱码久久久久久自慰 | 五月综合激情日本mⅴ | 极品美女高潮出白浆 | 日本黄色三级视频 | 日韩精品欧美在线 | 超碰97在线看 | 国产理论在线 | 国产成人无码av | 日本高清视频一区二区三区 | 天天操操 | 亚洲少妇第一页 | 日韩人妻精品在线 | 亚洲青青操 | 高h喷水荡肉少妇爽多p视频 | 亚洲视频手机在线 | 69精品国产| 国产激情一区二区三区四区 | 短裙公车被强好爽h吃奶视频 | 对白超刺激精彩粗话av | 奇米影视在线视频 | 91性高潮久久久久久久久 | 国产91在线播放精品91 | 五月婷婷久 | 91日韩在线视频 | 97超视频在线观看 | 日韩精品视频在线 | 日本网站在线免费观看 | 天天舔天天射天天干 |