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

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

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

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

數(shù)組/指針的傳參問題

C語言編程學習基地 ? 來源:C語言編程學習基地 ? 作者:C語言編程學習基地 ? 2022-08-17 10:37 ? 次閱讀

朋友們,到站啦!指針進階第四站:傳參問題

0.引例

自定義函數(shù)里形參的類型,要和函數(shù)調(diào)用中傳過去的實參類型相對應

test函數(shù)里的是int類型,我們傳過去的參數(shù)a也是int類型

void test(int n){}int main(){    int a=1    test(a);    return 0;}

好了,現(xiàn)在你已經(jīng)知道了函數(shù)傳參的基本概念了吧!

那么就來分析一下數(shù)組傳參、指針傳參的代碼吧!

1、一維數(shù)組傳參

看看以下函數(shù)的代碼示例

你覺得誰是正確的,誰是錯誤的呢?

include void test(int arr[]){}void test(int arr[10]){}void test(int *arr){}void test2(int *arr[20]){}void test2(int **arr){}int main(){    int arr[10] = {0};    int *arr2[20] = {0};    test(arr);    test2(arr2);    return 0;}

NO.1 形參使用數(shù)組的形式來接收,正確

NO.2 同樣是數(shù)組的形式,正確

需要注意的是,數(shù)組傳參并不會開辟一個新的數(shù)組

所以函數(shù)[ ]里的數(shù)字是多少并不影響

NO.3 數(shù)組名是首元素的地址,用指針接收,正確

NO.4 arr2是一個指針數(shù)組,(int *arr[20])和原數(shù)組對應,正確

NO.5 數(shù)組名是首元素地址,arr2的首元素是一個int*類型

可以用二級指針來接收,正確!

860bcc2e-1d3a-11ed-ba43-dac502259ad0.png

2、二維數(shù)組傳參

了解完一維數(shù)組了,那就來看看二維數(shù)組

以下的函數(shù)傳參,哪些是對的,哪些是錯的呢?

void test(int arr[3][5])//一一對應,正確!{}void test(int arr[][])//省略列,錯誤!{}void test(int arr[][5])//可以省略行,正確!{}void test(int *arr)//二維數(shù)組的首元素是第一行{}//第一行是int(*)[5]類型,錯誤!void test(int* arr[5])//指針數(shù)組,錯誤!{}void test(int (*arr)[5])//數(shù)組指針,正確!{}void test(int **arr)//arr不是一級指針的地址,錯誤!{}
int main(){    int arr[3][5] = {0};    test(arr);    return 0;}

根據(jù)二維數(shù)組傳參的代碼,復習以下知識點

(1)二維數(shù)組的首元素是第一行

(2)二維數(shù)組在定義的時候可以省略行,不能省略列

第一行的類型是int[5],應該放進數(shù)組指針里!

3、一級指針傳參

#include void print(int *p, int sz)//用int*來接受{ int i = 0; for(i=0; i { printf("%d
", *(p+i)); }}int main(){ int arr[10] = {1,2,3,4,5,6,7,8,9}; int *p = arr; int sz = sizeof(arr)/sizeof(arr[0]);  print(p, sz);//一級指針p,傳給函數(shù) return 0;}

4、二級指針傳參

以下是二級指針傳參的基本形式

pp是int**類型,而&p是指針變量的地址,要用二級指針來接收

#include void test(int** ptr){  printf("num = %d
", **ptr); }int main(){  int n = 10;  int*p = &n;  int **pp = &p;  test(pp);  test(&p);  return 0;}

再來看如下代碼

&p、pp、arr這三個參數(shù)的類型都是二級指針

test函數(shù)里面要用char**來接收

void test(char** p){}
int main(){  char ch = 'w';  char* p = &ch;  char** pp = &p;  char* arr[5];
  test(&p);  test(pp);  test(arr);    return 0;}

arr是指針數(shù)組的數(shù)組名,數(shù)組名是數(shù)組首元素的地址

數(shù)組的首元素是char*類型,所以要用二級指針來接收

5、如何判斷參數(shù)類型

如果我們在寫代碼的時候,不缺定應該用什么類型來接收的時候

可以寫一個測試代碼,VS編譯器會報錯“類型不一致”

864c6108-1d3a-11ed-ba43-dac502259ad0.png

結(jié)語

傳參問題并不算非常難,但我們?nèi)砸炀氄莆?/p>

這樣才能避免在寫自定義函數(shù)的時候出現(xiàn)參數(shù)類型不同的bug!

第四站數(shù)組傳參到這里就結(jié)束啦!

審核編輯:湯梓紅


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

    關(guān)注

    1

    文章

    484

    瀏覽量

    71037
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4891

    瀏覽量

    70306
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    419

    瀏覽量

    26394

原文標題:【C語言】指針進階第四站:數(shù)組/指針的傳參問題!

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    C語言中指針數(shù)組數(shù)組指針的區(qū)別

    指針數(shù)組之間存在著緊密的關(guān)系。在本文中,我們將探討指針數(shù)組的關(guān)系、指針算術(shù)和數(shù)組遍歷、多維
    發(fā)表于 08-17 15:29 ?589次閱讀

    數(shù)組指針的詳細講解

    數(shù)組指針的詳細講解
    發(fā)表于 10-16 08:44 ?0次下載

    指針數(shù)組的詳細資料和實例程序免費下載

    指針變量來訪問數(shù)組中任一元素,通常將數(shù)組的首地址稱為數(shù)組指針,而將指向數(shù)組元素的
    發(fā)表于 11-05 17:07 ?4次下載
    <b class='flag-5'>指針</b>與<b class='flag-5'>數(shù)組</b>的詳細資料和實例程序免費下載

    詳談數(shù)組指針的區(qū)別與聯(lián)系

    詳談數(shù)組指針的區(qū)別與聯(lián)系
    的頭像 發(fā)表于 06-29 15:18 ?2.3w次閱讀
    詳談<b class='flag-5'>數(shù)組</b>和<b class='flag-5'>指針</b>的區(qū)別與聯(lián)系

    指針數(shù)組數(shù)組指針的區(qū)別

    這里我們區(qū)分兩個重要的概念:指針數(shù)組數(shù)組指針
    的頭像 發(fā)表于 06-29 15:30 ?2w次閱讀
    <b class='flag-5'>指針</b><b class='flag-5'>數(shù)組</b>和<b class='flag-5'>數(shù)組</b><b class='flag-5'>指針</b>的區(qū)別

    圖文詳解:數(shù)組指針

    數(shù)組時,會退化為指針,所以我們先來看看什么是退化!
    的頭像 發(fā)表于 06-29 15:34 ?5672次閱讀
    圖文詳解:<b class='flag-5'>數(shù)組</b>和<b class='flag-5'>指針</b>的<b class='flag-5'>傳</b><b class='flag-5'>參</b>

    理解函數(shù)指針、函數(shù)指針數(shù)組、函數(shù)指針數(shù)組指針

    理解函數(shù)指針、函數(shù)指針數(shù)組、函數(shù)指針數(shù)組指針
    的頭像 發(fā)表于 06-29 15:38 ?1.5w次閱讀
    理解函數(shù)<b class='flag-5'>指針</b>、函數(shù)<b class='flag-5'>指針</b><b class='flag-5'>數(shù)組</b>、函數(shù)<b class='flag-5'>指針</b><b class='flag-5'>數(shù)組</b>的<b class='flag-5'>指針</b>

    C語言總結(jié)_數(shù)組與函數(shù)練習題

    字符串標準處理函數(shù)介紹(string.h)、指針數(shù)組當做函數(shù)形指針定義、函數(shù)返回指針、void類型定義
    的頭像 發(fā)表于 08-14 09:36 ?1046次閱讀

    二維數(shù)組數(shù)組指針以及指針數(shù)組

    二維數(shù)組數(shù)組指針以及指針數(shù)組
    的頭像 發(fā)表于 08-16 09:02 ?3072次閱讀

    【C語言進階】“數(shù)組指針”和“指針數(shù)組”都是啥跟啥?

    【C語言進階】“數(shù)組指針”和“指針數(shù)組”都是啥跟啥?
    的頭像 發(fā)表于 08-31 13:21 ?2165次閱讀

    C語言數(shù)組元素的指針

    C語言調(diào)用函數(shù)時虛實結(jié)合的方法都是采用“值傳遞”方式,當用變量名作為函數(shù)參數(shù)時傳遞的是變量的值,當用數(shù)組名作為函數(shù)參數(shù)時。 由于數(shù)組名代表的是數(shù)組元素地址,因此傳遞的值是地址,所以要去形
    的頭像 發(fā)表于 03-10 14:45 ?1169次閱讀

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

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

    數(shù)組指針不能混用的情況

    數(shù)組指針不能混用的情況? 數(shù)組指針是 C/C++ 中非常常見的特性和概念。然而,在某些情況下,數(shù)組
    的頭像 發(fā)表于 12-07 13:46 ?832次閱讀

    數(shù)組指針不相同嗎?數(shù)組指針有哪些區(qū)別

    數(shù)組就是指針指針就是數(shù)組,這樣的言論在評論區(qū)看到不下于10次。
    的頭像 發(fā)表于 12-13 16:34 ?2046次閱讀
    <b class='flag-5'>數(shù)組</b>和<b class='flag-5'>指針</b>不相同嗎?<b class='flag-5'>數(shù)組</b>和<b class='flag-5'>指針</b>有哪些區(qū)別

    面試常考+1:函數(shù)指針指針函數(shù)、數(shù)組指針指針數(shù)組

    在嵌入式開發(fā)領(lǐng)域,函數(shù)指針指針函數(shù)、數(shù)組指針指針數(shù)組是一些非常重要但又容易混淆的概念。理解它
    的頭像 發(fā)表于 08-10 08:11 ?1356次閱讀
    面試常考+1:函數(shù)<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>函數(shù)、<b class='flag-5'>數(shù)組</b><b class='flag-5'>指針</b>與<b class='flag-5'>指針</b><b class='flag-5'>數(shù)組</b>
    主站蜘蛛池模板: 日本黄色小视频在线观看 | 欧美影院一区二区三区 | 神马福利| 中文在线最新版天堂 | 手机看片久久 | 欲色天天| 成年视频在线观看 | 欧美一级视频精品观看 | 中文字幕一区二区三区四区五区 | 黄色一级一毛片 | aa三级动态图无遮无挡 | 午夜大片男女免费观看爽爽爽尤物 | 在线a免费观看最新网站 | 国产内地激情精品毛片在线一 | 亚洲成人一级片 | 一级片免费观看视频 | 伊人草| a级毛片免费网站 | 国内精品伊人久久大香线焦 | 免费的国语一级淫片 | 高清国产下药迷倒美女 | 午夜网站视频 | 久久天天躁狠狠躁狠狠躁 | 在线观看亚洲人成网站 | 亚洲精品精品一区 | 久久草精品| 天堂在线看 | 污视频18高清在线观看 | 在线午夜影院 | 四虎影院国产精品 | 奇米色88欧美一区二区 | 福利视频午夜 | 久久久久久久久久免免费精品 | 亚洲精品久久久久久婷婷 | aa视频在线| 日本成本人三级在线观看2018 | 国产单男 | 午夜一区二区免费视频 | 性欧美黑人xxxx | 成人网在线看 | 国外精品视频在线观看免费 |