本文目錄一覽:
- 1、關於c語言數據結構中棧的初始化函數傳遞參數的問題
- 2、C語言命令行如何傳參
- 3、嚴老師的數據結構(C語言)中,函數的參數顯示傳遞是什麼意思?我剛剛學習這本書
- 4、C語言自定義函數怎麼傳參,是一次性把數組的數據全部傳入嗎?
關於c語言數據結構中棧的初始化函數傳遞參數的問題
1、通過函數的參數顯示傳遞:
a(int
a)
{
a
=
a+2;
}
b(void)
{
int
b
=
3;
a(b);
}
在函數a中a作為一個參數傳入函數中進行運算,那麼a就可以算作是a的輸入,然後在程序內部a進行了運算後值變了,那麼運算後的a又算作是a函數的輸出。
2、通過全局變數隱式傳遞:
全局變數你應該知道吧,簡單點說就是作用域涵蓋整個程序的變數(當然要看具體情況)。
假設a為int型全局變數,初始值為1:int
a
=
1;
a()
{
a
=
a
+
2;
}
b()
{
a
=
a
+
3;
}
main()
{
a();
b();
a();
}
通過main函數我們可以看到,程序首先執行的是函數a,那麼執行完函數a後全局變數a的值由初始值1變成了3,然後又繼續執行函數b,注意此時函數b也是對a進行運算,那麼此時全局變數a成了b的輸入,運算後a的值為了6,此時a為b的輸出。那麼也就是說全局變數a在經過a函數的改變後作為一個輸入隱式的傳入了b函數,然後經過b函數的運算又算作是b的輸出。執行過b函數後程序又遇到了a函數,那麼此時經過b函數運算的a又作為a函數的一個輸入了。
C語言命令行如何傳參
用main()函數的參數就可以將外部數據傳給程序了!
例如:
//////////////////////////////
#include stdio.h
#include stdlib.h
int main(int argc, char* argv[])
{
int i;
if (argc1) {
system(“cls”);
for (i=1; i argc; i++)
printf(“%s “,argv[i]);
}
return 0;
}
return 0;
}
///////////////////////////////////////////
上面的程序生成的可執行文件為C:\\PG.EXE
則在命令提示符下輸入 回車即可在屏幕上輸出5。
****************************************************
argc就是參數的數量,由於第一個參數是程序名及路徑自身,所以實際上傳遞到程序的參數數量是argc-1,數組argv中的第一個元素(即argv[0]是程序名及路徑自身,例如上面的「 C:\\pg 5」則argc==2,argv[0]==”C:\\pg”)
嚴老師的數據結構(C語言)中,函數的參數顯示傳遞是什麼意思?我剛剛學習這本書
1、通過函數的參數顯示傳遞:
A(int a)
{
a = a+2;
}
B(void)
{
int b = 3;
A(b);
}
在函數A中a作為一個參數傳入函數中進行運算,那麼a就可以算作是A的輸入,然後在程序內部a進行了運算後值變了,那麼運算後的a又算作是A函數的輸出。
2、通過全局變數隱式傳遞:
全局變數你應該知道吧,簡單點說就是作用域涵蓋整個程序的變數(當然要看具體情況)。
假設a為int型全局變數,初始值為1:int a = 1;
A()
{
a = a + 2;
}
B()
{
a = a + 3;
}
main()
{
A();
B();
A();
}
通過main函數我們可以看到,程序首先執行的是函數A,那麼執行完函數A後全局變數a的值由初始值1變成了3,然後又繼續執行函數B,注意此時函數B也是對a進行運算,那麼此時全局變數a成了B的輸入,運算後a的值為了6,此時a為B的輸出。那麼也就是說全局變數a在經過A函數的改變後作為一個輸入隱式的傳入了B函數,然後經過B函數的運算又算作是B的輸出。執行過B函數後程序又遇到了A函數,那麼此時經過B函數運算的a又作為A函數的一個輸入了。
C語言自定義函數怎麼傳參,是一次性把數組的數據全部傳入嗎?
1、因為數組在內存中是一塊連續的內存,只要將該數組的首地址傳進去,當然就可以訪問整個數組了。值得注意的是,由於只傳了首地址,函數不知道數組的維數,所以還得把數組的維數傳進去,那就可以完全操作該數組了。
2、例:有一個函數聲明:void fun( int aa[],int size );或者void fun( int *pa,int size );
以上兩種聲明都一樣。
調用上訴函數時:假設有 int ab[10];
fun( ab,10 )就可以了。
原創文章,作者:CTPI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141863.html