IDL的引數傳遞(五)

2021-10-05 08:13:34 字數 3287 閱讀 1636

簡單來說,值傳遞不會改變輸入值,但是位址傳遞改變變數的值

變數傳遞例子:

pro add_li,a

a=a+

10print,

'add_li value_a:'

+string

(13b)

,aend

pro test_li

l=bindgen(3

,3)print,

'orginal value_l: '

+string

(13b)

,ladd_li,l

print,

'result value_l:'

+string

(13b)

,lend

結果:

idl> test_li

% compiled module: add_li.

% compiled module: test_li.

orginal value_l:01

2345

678add_li value_a:

1011

1213

1415

1617

18result value_l:

1011

1213

1415

1617

18idl>

值傳遞例子:

pro add_li,a

a=a+

10print,

'add_li value_a:'

+string

(13b)

,aend

pro test_li

l=bindgen(3

,3)print,

'orginal value_l: '

+string

(13b)

,ladd_li,l[1:

*,1:

*]print,

'result value_l:'

+string

(13b)

,lend

結果:

idl> test_li

% compiled module: add_li.

% compiled module: test_li.

orginal value_l:01

2345

678add_li value_a:

1415

1718

result value_l:01

2345

678idl>

給出加引數的add.pro(a,b為引數)和作為主程序的myprocedure.pro

pro add, a, b

print,

'a = '

, a print,

'b = '

, b a = a + b

print,

'a = '

, aend

pro myprocedure

x =5; call the add procedure:

add,

3, x

end

執行myprocedure.pro的結果:

% compiled module: add.

% compiled module: myprocedure.

a =3

b =5

a =8

idl>

當pro中有引數時可輸入可不輸入時,可以做如下處理:

n_params()檢測所輸入引數的個數

pro test_li,a,b

a=a*

10if

n_params

() eq 2 then b=b*

5end

通過在end前打斷點,分別看兩次執行a,b的值,結果如下

pro中c為傳出引數

pro add_li,a,b,c=c

c=a+b

print,

'c 的值為: '

,cend

pro test_lil=1

z=2add_li,l,z,c=j

print,

'j 的值為: ',j;

ifn_params

() eq 3 then b=b*

5end

結果:

idl> test_li

% compiled module: add_li.

% compiled module: test_li.

c 的值為: 3

j 的值為: 3

idl>

《傳遞引數》shell學習之路 五

傳遞引數 在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n 0 可以輸出執行的檔名稱 n 代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推 輸出所有引數 echo echo 傳遞的第乙個引數是 echo 傳遞的第乙個引數是 echo 傳遞...

引數的傳遞

q 引數 到底是 按值傳遞 還是 按引用傳遞 a 按值傳遞 例子 這裡用乙個經典的 引用型別傳遞到函式引數中 來佐證是按值傳遞的 function setname object let person new object setname person console.log person.name ...

引數的傳遞

我們都應該知道所謂的程式語言就是通過一系列的函式變換,實現資料的傳輸,變換,最終呈現出我們所需要的效果。可以說無論是什麼程式語言資料的傳遞都是彌足珍貴的。可是我們在傳輸資料的過程中不能僅僅是簡單的傳輸,我們需要一種載體來承接我們傳輸的內容,也就是我要說的引數。引數有形參和實參之分,所謂的實參可以理解...