這里的friends[]是什么意思?

鹿寨網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)從2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)。
是friends[0]么?
這里的friends[]是表示函數(shù)的形參是一個數(shù)組,在調用該函數(shù)時,傳遞的實參必須是一個數(shù)組名(比如,有int a[10]; 在傳遞的時候就傳a),或者是數(shù)組首元素的地址(a[0])。
void add(struct friends_list friends[]);
這個函數(shù)傳遞的是friends[]數(shù)組中的哪個元素?
不是傳遞的數(shù)組哪個元素,而是傳遞的數(shù)組首地址,friends[]相當于*friends。然后可以根據(jù)指針地址的加減操作,訪問其他元素的地址,以及地址對應的值。
請參考你前一個問題的回答。
#include"stdio.h"http://printf的頭文件?
void?func1(int?i);//對于函數(shù)1的提前聲明
void?func2(int?i);//對于函數(shù)2的提前聲明
char?st[]="hello,friend";//定義一個長度為12的字符數(shù)組
//c++里所有的數(shù)組都是從0開始計數(shù)的哦
void?func1(int?i)?{?//其實如果提前聲明了↑↑(第2行),這個函數(shù)還可以寫在主函數(shù)(main)的后面
printf("%c",st[i]);//等于putchar(st[i]);?作用:輸出一個字符
if(i3)?{//等于i=2?判斷i是否小于3
i+=2;//等于i=i+2,表示i自增2
func2(i);//調用func2函數(shù)
}
}
void?func2(int?i)?{
printf("%c",st[i]);//一樣的
if(i3)?{//還是一樣的
i+=2;//...
func1(i);//再調用func1函數(shù)
}
}
main()?{//主函數(shù)可以不寫"int?main()",但在一些比賽中是不允許的。?
int?i;//定義一個局部變量?
i=0;//把i的值設為0
func1(i);//調用func1(0)
printf("\n");//輸出換行 ?
//其實最好要再寫一個"return?0;"結束程序?
}
/*
程序流程:?
主函數(shù)內調用func1(0):
輸出st[0]-h?
i3??(i=0)?-?i3
i+2?i=2?調用func2(2):
輸出st[2]-l
i3??(i=2)?-?i3
i+2?i=4?調用func1(4):
? 輸出st[4]-o
? i3??(i=4)?-?i3
返回!?
返回!
返回!
返回!
返回!
返回!
返回!
輸出換行
結束程序?
*/
完全沒有必要去死記硬背,其實只要你有一點英語功底,會發(fā)現(xiàn)他和英語沒什么兩樣,通過把它們變成英語后翻譯過來是很容易的。
另一個方法是 多看多做
C++ 關鍵字
asm 插入一個匯編指令.
auto 聲明一個本地變量.
bool 聲明一個布爾型變量.
break 結束一個循環(huán).
case 一個switch語句的一部分.
catch 處理 thrown 產生的異常.
char 聲明一個字符型變量.
class 聲明一個類.
const 聲明一個常量.
const_cast 從一個const變量中拋出.
continue 在循環(huán)中間斷循環(huán).
default 是一個case語句中的缺省項.
delete 釋放內存.
do 構造循環(huán)體.
double 聲明一個雙精度浮點變量.
dynamic_cast 動態(tài)投射.
else 是一個if語句中的預備條件.
enum 創(chuàng)建列舉類型.
explicit 僅用在構造器的正確匹配.
extern 告訴編譯器在別的地方變量已經(jīng)被定義過了.
false 屬于布爾值.
float 聲明一個浮點型變量.
for 構造循環(huán).
friend 允許非函數(shù)成員使用私有數(shù)據(jù).
goto 跳轉到程序的其它地方.
if 從一次判斷的結果處執(zhí)行代碼.
inline 定義一個函數(shù)為內聯(lián).
int 聲明一個整型變量.
long 聲明一個長整型變量.
mutable 忽略const變量.
namespace 用一個定義的范圍劃分命名空間.
new 允許動態(tài)存儲一個新變量.
operator 創(chuàng)建重載函數(shù).
private 在一個類中聲明私有成員.
protected 在一個類中聲明被保護成員.
public 在一個類中聲明公共成員.
register 定義一個寄存器變量.
reinterpret_cast 改變一個變量的類型.
return 從一個函數(shù)中返回.
short 聲明一個短整型變量.
signed 修改變量類型聲明.
sizeof 返回一個變量或類型的長度.
static 給一個變量創(chuàng)建永久的存儲空間.
static_cast 執(zhí)行一個非多態(tài)性cast.
struct 創(chuàng)建一個新結構體.
switch 讓一個變量在不同的判斷下執(zhí)行不同的代碼.
template 創(chuàng)建一個給特殊函數(shù).
this 指向當前對象.
throw 拋出一個異常.
true 布爾類型的一個值.
try 執(zhí)行一個被throw 拋出的異常.
typedef 從現(xiàn)有的類型中創(chuàng)建一個新類型.
typeid 描述一個對象.
typename 聲明一個類或未定義的類型.
union 一個結構體在當前位置分配給多個變量相同的內存.
unsigned 聲明一個無符號整型變量.
using 用來輸入一個namespace.
virtual 創(chuàng)建一個不被已構成類有限考慮的函數(shù).
void 聲明函數(shù)或數(shù)據(jù)是無關聯(lián)數(shù)據(jù)類型.
volatile 警告編譯器有關的變量可能被出乎意料的修改.
wchar_t 聲明一個帶有寬度的字符型變量.
while 用來構成循環(huán)
主函數(shù)中func1(i)也就是func1(0);所以打印出str[0],也就是h,
0是小于3的,所以i=i+2,此時i的值為2,func2(i)就是func(2),所以打印出
str[2],也就是l,
2是小于3的,i=i+2,此時i的值為4,func(i)就是func(3),所以打印出str[4],
也就是o。
所以程序運行的結果是hlo。
錯誤在于,
1.
friend int A( );
在一個類中聲明了一個與類名相同的友元函數(shù)(A()),
結果會導致友元函數(shù)被當成類的構造函數(shù),
編譯器會報 “構造函數(shù)不能指定返回類型”的錯誤。
2.
static friend int f( );
函數(shù)f()不能同時聲明為static 函數(shù)和友元函數(shù),
不然會報“儲存類說明符在友元函數(shù)聲明中無效”的錯誤。
函數(shù)被聲明為友元函數(shù)后,
也就有了extern的屬性,
而extern 和static 可以說是互相對立的,
所以如果先什么為友元函數(shù)后再聲明函數(shù)為static函數(shù),
也會報錯—— “‘static’和就說明符‘extern’沖突”
in a word,static 和 friend 不能同時存在于一個函數(shù)
3.
反駁一下一樓觀點。
一樓觀點有誤。
友元函數(shù)(g)可以直接訪問對象的私有成員(a.a)。
就醬紫,樓主有什么問題再追問嗯,
望采納(●'?'●)~
void printAll (friend_list friList[], int *friNum)
這是一個函數(shù)的定義
void 函數(shù)無返回值
printAll 函數(shù)的名字,命名規(guī)則可能是用來輸出所有數(shù)組成員
這個函數(shù)有兩個參數(shù)
friend_list friList[] 是一個數(shù)組的引用(指向friend_list 類型數(shù)組的指針)
int *friNum 是一個整型的指針
這個函數(shù)按常見程序的設計思路,可能在外部有一個friend_list 類型的數(shù)組,這個數(shù)組已經(jīng)通過其他方法存入了數(shù)據(jù),然后定義了一個 整型變量。 把兩個指針傳入你的函數(shù)中,函數(shù)內容應該做了輸出處理,friNum 是一個計數(shù)算器,用于記錄數(shù)組成員的總個數(shù)。
因為你沒有貼出源碼(函數(shù)的具體實現(xiàn))以個思路僅為我的分析
本文名稱:c語言friend函數(shù),c# friend
文章分享:http://chinadenli.net/article31/dsehppd.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿網(wǎng)站建設、ChatGPT、全網(wǎng)營銷推廣、自適應網(wǎng)站、網(wǎng)站收錄、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)