第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

char型數(shù)組作為函數(shù)參數(shù)怎么用?

char型數(shù)組作為函數(shù)參數(shù)怎么用?

胡子哥哥 2021-02-03 06:03:59
char型數(shù)組作為函數(shù)參數(shù)怎么用,有多個(gè)數(shù)組,長度也不一樣,但是想做的操作是差不多的,想寫一個(gè)函數(shù),多次調(diào)用對每個(gè)char型數(shù)組操作,功能函數(shù)的參數(shù)怎么定義?函數(shù)調(diào)用時(shí)怎么寫?……我直接用數(shù)組名字作為參數(shù)時(shí)報(bào)錯(cuò)了,為什么呢?
查看完整描述

2 回答

?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

1.聲明字符數(shù)組時(shí),[]中的數(shù)應(yīng)為數(shù)組中字符個(gè)數(shù),包括'/0'
如 char p[5] = "dddd";
則實(shí)際為:'d' 'd' 'd' 'd' '/0'.
若 char p[5] = "ddddd";
則編譯出錯(cuò),提示越界.

2.(1)初始化字符數(shù)組時(shí),會(huì)自動(dòng)補(bǔ)充'/0'
如 char p[5] = "dd";
則實(shí)際為:'d' 'd' '/0' '/0' '/0'
再如 char p[3] = "";
則實(shí)際為:'/0' '/0' '/0'
(2)若沒有只是聲明字符數(shù)組,沒初始化并不會(huì)自動(dòng)補(bǔ)'/0'
如 char p[3];
則實(shí)際字符數(shù)組內(nèi)容并不可知,因?yàn)閷?shí)際上p也是個(gè)指針,現(xiàn)在并不知道它的指向
(3)同理,聲明字符指針并不初始化時(shí),也不知道指針的指向
如 char *p;
(4)聲明并初始化指針,由于"內(nèi)存對齊"(由編譯器實(shí)現(xiàn)),對32位機(jī)
則會(huì)補(bǔ)齊4位,自動(dòng)補(bǔ)'/0'
如 char *p = "a";
則實(shí)際為:p[0]='a',p[1]='/0',p[2]='/0',p[3]='/0'.
若 char *p ="";
則實(shí)際為:p[0]='/0',p[1]='/0',p[2]='/0',p[3]='/0'.
include <iostream>
using namespace std;

/*
void fun(char (&buff)[11])//括號(hào)里必須有11才不報(bào)錯(cuò)
{
cout<< buff;
}
*/

template<size_t size>
void fun(char (&buff)[size])
{
cout<< buff;
}

int main(int argc, char *argv[])
{
char buff[] = "helloworld";

fun(buff);

return 0;
}

/*
void fun(char (&buff)[11])跟void fun(char *&buff);完全是兩回事,
c++的數(shù)組類型是帶有長度信息的,引用傳遞時(shí)如果指明是數(shù)組則必須指定長度,char[]這種是不完全類型,在沒有別的條件來確定長度的情況下是不能當(dāng)做一個(gè)類型來使用的
如果lz想接收任意長度的數(shù)組,應(yīng)當(dāng)使用模板函數(shù)

template<size_t size>
void fun(char (&buff)[size])
{
cout<< buff;
}
*/



查看完整回答
反對 回復(fù) 2021-03-28
?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果你的數(shù)組是定長的,比如都是char [10]那么可以把每個(gè)數(shù)組定義為char a[10], b[10]...
函數(shù)定義為void func(char s[10]) 然后調(diào)用就可以
也可以直接傳char *,然后在程序中按照s[10]操作

如果不定長 可以傳指針和size過去
void func(char *s, int len)
你說的報(bào)錯(cuò) 能說下你是怎么定義和調(diào)用的嗎?

查看完整回答
反對 回復(fù) 2021-03-28
  • 2 回答
  • 0 關(guān)注
  • 742 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)