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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【C 语言】数组作为参数退化为指针问题 ( 问题描述 | 从编译器角度分析该问题 | 出于提高 C 语言执行效率角度考虑 | 数组作为参数的推荐方案 )

發(fā)布時(shí)間:2025/6/17 编程问答 21 豆豆

文章目錄

  • 一、問題描述
  • 二、從編譯器角度分析該問題
  • 三、數(shù)組作為參數(shù)的推薦方案





一、問題描述



數(shù)組 作為 函數(shù)參數(shù) , 傳遞時(shí)會(huì) 退化為指針 ;

數(shù)組的首地址 , 變?yōu)橹羔樀刂?, 函數(shù)中無(wú)法判定數(shù)組的大小 ;


代碼示例 :

#include <stdio.h>/** 數(shù)組作為參數(shù) 會(huì) 退化為指針*/ void fun(int array[3]) {printf("fun : sizeof(array)=%d\n", sizeof(array)); }/** 函數(shù)入口*/ int main(int argc, char **args) {// 將要作為實(shí)參的數(shù)組int array[3] = {1, 2, 3};printf("main : sizeof(array)=%d\n", sizeof(array));// 將數(shù)組作為參數(shù)傳遞到函數(shù)中fun(array);return 0; }

執(zhí)行結(jié)果 :





二、從編譯器角度分析該問題



該問題的理解 , 需要從 C/C++ 編譯器的角度進(jìn)行理解 , 代碼開發(fā)出來(lái) , 主要是給編譯器使用的 , 讓編譯器明白開發(fā)者的意圖 ;

上述示例中 , 函數(shù)的 實(shí)參是

// 將要作為實(shí)參的數(shù)組int array[3] = {1, 2, 3};

, 其類型是 int 數(shù)組 ; 函數(shù)的 形參是 void fun(int array[3]) 中的

int array[3]

其類型是指針 ;

上述 實(shí)參的 array形參的 array 數(shù)據(jù)類型不同 ,

編譯器將 形參的 array 當(dāng)做指針 , 只給該形參分配了 4 字節(jié)內(nèi)存 , 沒有為其分配 4 x 3 = 12 字節(jié)的內(nèi)存 ;

編譯器會(huì)將 形參中的數(shù)組 作為指針處理 , 只會(huì)為其分配 指針 所占用的內(nèi)存 ;


如果 編譯器 將 形參作為 數(shù)組處理 , 需要 將數(shù)組中的所有元素 , 都要拷貝到棧中 , 如果這個(gè)數(shù)組很大 , 有幾千上萬(wàn)個(gè)元素 , 那么該函數(shù)的執(zhí)行效率就很低了 ;


因此 , 為了提升 C 語(yǔ)言的執(zhí)行效率 , 參數(shù)傳遞時(shí) , 如果要傳遞大量數(shù)據(jù) , 不允許傳遞數(shù)組 , 只能傳遞指針 ;

C 語(yǔ)言的優(yōu)勢(shì) , 就是在 調(diào)用函數(shù) 之間 , 通過指針操作內(nèi)存 , 效率很高 , 因此 編譯器不允許使用數(shù)組作為參數(shù) ;





三、數(shù)組作為參數(shù)的推薦方案



形參設(shè)置為 數(shù)組元素類型的指針 , 以及數(shù)組元素個(gè)數(shù) ;

代碼示例 :

#include <stdio.h>/** 數(shù)組作為參數(shù) 會(huì) 退化為指針*/ void fun(int *array, int count) {int i;for(i = 0; i < count; i++)printf("%d ", array[i]); }/** 函數(shù)入口*/ int main(int argc, char **args) {// 將要作為實(shí)參的數(shù)組int array[3] = {1, 2, 3};printf("main : sizeof(array)=%d\n", sizeof(array));// 將數(shù)組作為參數(shù)傳遞到函數(shù)中fun(array, sizeof (array) / sizeof (array[0]));return 0; }

執(zhí)行結(jié)果 :

總結(jié)

以上是生活随笔為你收集整理的【C 语言】数组作为参数退化为指针问题 ( 问题描述 | 从编译器角度分析该问题 | 出于提高 C 语言执行效率角度考虑 | 数组作为参数的推荐方案 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 四虎永久在线视频 | 国产免费一区二区三区最新不卡 | 自拍偷自拍亚洲精品播放 | 久久久久久国产精品免费免费 | www.黄色片网站 | 日韩精品人妻一区二区三区免费 | 日韩欧美中文一区 | 黄色网址哪里有 | 亚洲av无码国产精品久久久久 | xx在线视频| 美日韩精品一区二区 | 超碰在线cao | 精品久久国产视频 | 99热欧美| 粗大黑人巨茎大战欧美成人免费看 | 亚洲国产精品视频在线观看 | 三级网站视频 | 高跟91白丝 | 午夜精品久久久久久久99老熟妇 | 成人黄色片在线观看 | 91精品国产综合久久精品图片 | 日韩毛片在线视频 | 亚洲精品99999 | 久久久久久中文 | 国产成人久久久 | 男人天堂亚洲天堂 | 日日麻批免费视频播放 | 一边摸一边做爽的视频17国产 | 在线欧美国产 | 在线高清免费观看 | 精品一区二区三区在线播放 | av中文资源网| 少妇自摸视频 | 337p粉嫩日本欧洲亚洲大胆 | 国产精品久久久久久久av福利 | 国产性猛交xxxx免费看久久 | 免费美女毛片 | 国产精品第1页 | 丰腴饱满的极品熟妇 | 翔田千里一区二区 | 国产成人亚洲综合 | 性久久久久久久久久久 | 亚洲综合色av | 日日夜夜一区 | 污视频免费看 | 国产一区二区黑人欧美xxxx | 日韩精品xxx | 干极品美女 | 久久一区视频 | 日韩成人精品视频 | 久久一区二 | 精品国产精品 | 亚洲二区在线播放视频 | 国产欧美日韩一区二区三区 | 青青草免费公开视频 | 四虎影视最新网址 | 欧美人日b | 香港台湾日本三级大全 | 97超碰国产精品无码蜜芽 | av色婷婷| 91精品一区二区三区四区 | 4438全国成人免费 | 久久丁香 | 欧美日韩中文字幕一区二区 | 永久免费在线播放 | 欧美精品在线免费观看 | 波多野结衣久久久久 | 欧美激情天堂 | 女生高潮视频在线观看 | 在线免费观看视频你懂的 | 国产精品人成在线观看免费 | 精品国内自产拍在线观看视频 | 欧美做受69 | 天天爽夜夜爽人人爽 | 福利视频一区二区 | 日韩国产中文字幕 | 一道本一区 | 在线免费观看不卡av | 神马影院一区二区 | 国产精品无遮挡 | 伊人激情在线 | 久久久久久免费 | 99色99| 亚洲婷婷在线视频 | 午夜精品影院 | 亚洲综合站| 丰满人妻一区二区三区免费视频 | 男人av网站| 好吊操这里只有精品 | 欧美手机看片 | 亚洲精品福利在线观看 | 美女a视频 | 波多野结衣视频一区 | 午夜黄色福利视频 | 亚洲xxxx18| 亚洲交性网 | 五月婷视频 | 九久久| 国产乱子伦农村叉叉叉 |