C 基礎語法 方法引數詳解

2022-09-26 19:51:27 字數 3267 閱讀 2578

●值引數 :乙個值引數相當於乙個區域性變數,當使用值引數的時候,將會分配乙個新的儲存位置,將實參拷貝到該位置,並將該拷貝值傳遞給該方法。因此,值引數只能將值帶進方法,但是不能帶出方法,而不會影響實參的值。

●引用引數:當使用引用引數的時候,將不會分配乙個新的儲存位置,in other words,引用引數能將值帶進方法,也能帶出方法,因而會影響實參的值。如下例:

using system;

namespace prg1

//引用引數使用演示

static void transposition_2(ref int a,ref int b)

static void main(string args)

,b=",a,b);

transposition_1(a,b);

console.writeline("呼叫transposition_1之後a=,b=", a, b);

console.writeline("********************\n");

//呼叫transposition_2

console.writeline("呼叫transposition_2之前a=,b=", a, b);

transposition_2(ref a,ref b);

console.writeline("呼叫transposition_2之後a=,b=", a, b);

console.writeline("********************\n");

console.readkey();}}}

●輸出引數:根據表層含義猜測其只能輸出不能輸入方法的引數,我們開始緊隨上例驗證一下,加入以下**:程式設計客棧

static void transposition_2(ref int a,ref int b)

編譯器便會提醒a,b未賦值的報錯,同樣我們也就可以直觀的看到,輸出引數不能將值帶進方法,只能將值輸出方法。從下面的例子中可以看出在方法的內部進行了輸出引數的賦值操作,因此無論在**使用輸出引數都必須提前賦值,這也是使用任何型別引數的共性。

//use of output parameters

static void transposition_3(string name,out string fistname,out string lastname)

i--;

}fistname = name.substring(0,i-1);

lastname = name.substring(i);

}//呼叫transposition_3

string doname,nmark;

transposition_3("rohelm.x",out doname,out nmark);

console.writeline("domain name of myself: mosaj",doname);

console.writeline("the last name of my domain name: ",nmark);

●引數陣列:簡而言之,就是方法傳遞的單位是個陣列,而且可以是一維陣列或者交錯陣列(形如int),但是不能是多維陣列(形如;string[,]),可以為引數陣列制定乙個或多個實參,其中每乙個實參都是乙個表示式,此外引數陣列和同一型別的值引數完全等效。例如下例:

class prmarry

", name.length);

console.write("elements of namearray:");

for (int i = 0; i < name.length; i++)

",name[i]);}}

}//呼叫show

string namearray = ;

prmarry.show(namearray);

console.readkey();

也不知咋搞的,我的輸入法和編譯器好像在玩***,一會不一會的就不支援漢字輸入了,我也真能用英語輸入了,無奈。

下面是這一日誌的參考原始碼,可以整體分析一下:

using system;

namespace prg1

//引用引數使用演示

static void transposition_2(ref int a,ref int b)

//use of output parameters

static void transposition_3(string name,out string fistname,out string lastname)

i--;

}fistname = name.substring(0, i - 1);

lastname = namosajme.substring(i);

}static void main(string args)

,b=",a,b);

transposition_1(a,b);

console.writeline("呼叫transposition_1之後a=,b=", a, b);

console.writeline("********************\n");

//呼叫transposition_2

console.writeline("呼叫transposition_2之前a=,b=", a, b);

transposition_2(ref a,ref b);

console.writeline("呼叫transposition_2之後a=,b=", a, b);

console.writeline("********************\n");

//呼叫transposition_3

string doname,nmark;

transposition_3("rohelm.x",out doname,out nmark);

console.writeli"domain name of myself: ",doname);

console.writeline("the last name of my domain name: "+"\n",nmark);

//呼叫show

string namearray = ;

prmarry.show(namearray);

console.readkey();

}} class prmarry

", name.length);

console.write("elements of namearray:");

for (int i = 0; i < name.length; i++)

",name[i]);}}

}}本文位址:

Python魔法方法詳解

據說,python 的物件天生擁有一些神奇的方法,它們總被雙下劃線所包圍,他們是物件導向的 python 的一切。他們是可以給你的類增加魔力的特殊方法,如果你的物件實現 過載 了這些方法中的某乙個,那麼這個方法就會在特殊的情況下被 python 所呼叫,你可以定義自己想要的行為,而這一切都是自動發生...

c 物件導向基礎 類 方法 方法過載

c 是純粹的物件導向程式設計語言,它真正體現了 一切皆為物件 的精神。在c 中,即使是最基本的資料型別,如int,double,bool型別,都屬於system.object object為所有型別的基類 型別。此外,使用c 程式設計,不會存在與游離於物件之外的屬於過程的東西。因此,學習c 就必須具...

python語法練習16 17 魔法方法

python 的物件天生擁有一些神奇的方法,它們總被雙下劃線所包圍,他們是物件導向的 python 的一切。他們是可以給你的類增加魔力的特殊方法,如果你的物件過載了這些方法中的某乙個,那麼這個方法就會在特殊的情況下被 python 所呼叫,你可以定義自己想要的行為,而這一切都是自動發生的。new c...