『壹』 請教,如何把字元串常量當作函數參數傳入,謝
函數的形參進入函數時,進入的只是形參的拷貝值,並不是本身。函數是在棧里開辟內存,棧是系統自己的維護的所以不需要程序員自己回收當函數結束時,這片內存被釋放。
『貳』 存放字元串數組名作為函數參數,是否要另外增加一個整數作為函數參數,以表明字元串有效字元個數,為什麼
下面是C/C++語言中的數組使用。
數組名作為函數參數的時候會「弱化」為指針,即使用的時候實際傳遞是的指針類型的參數。
我們知道指針類型代表著地址,它並沒有指明數組元素的個數,因此編寫這類函數時通常加上一個整數類型的參數,以指明數組中元素。
涉及到具體的應用,如字元串數組,也可以不用這樣的整數類型參數,這樣的數組可以用strlen()函數得到字元串長度(有效字元個數)。
然而對於一般的數組,是沒有這樣的函數可用的。
『叄』 c語言:字元串做為函數參數傳遞
1、值傳遞
void swap(int x,int y)
{ int temp = x;
x = y;
y = temp;
}void main()
{
int a = 10, b = 20;
swap(a, b);
}
執行後,並不會交換。
2、引用傳遞
void swap(int &x,int &y)
{ int temp = x;
x = y;
y = temp;
}void main()
{
int a = 10, b = 20;
swap(a, b);
printf("a=%d b=%d ", a, b);
}
執行後,發生交換。
3、指針傳遞
void swap(int *x,int *y)
{ int temp = *x; *x = *y; *y = temp;
}void main()
{
int a = 10, b = 20;
swap(&a, &b);
printf("a=%d b=%d ", a, b);
}
執行後,發生交換。
參數傳遞只有上面三種,但是如果加上數組,就會產生幾種新形式。
首先,明確數組型變數名本身只是該數組所佔存儲空間的首地址:
int a[3] = { 1, 2, 3 }; int *p = a; //等價於下行 //int *p = &a[0];
printf("%d", *p);
典型的數組做參數。
void fun(char s[]){ for (int i = 0; s[i] != '