當前位置:首頁 » 編程語言 » c語言數組名可以做形參嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言數組名可以做形參嗎

發布時間: 2022-04-23 13:05:12

c語言,數組名作函數參數問題。

void
change(int
array[],int
n)相當於void
change(int
*array,int
n),第一個參數是個指針,如果是change(a[2],2)則第一個參數是個常數不是指針,由於數組名是常指針,所以改成change(a,2)就沒問題了。

Ⅱ c語言怎麼將數組作為函數參數傳入

一維數組的元素作為函數實參,與同類型的簡單變數作為實參一樣,是單向的值傳遞,即數組元素的值傳給形參,從而形參是改變不影響實參

數組名代表著整個數組的地址,如果一維數組的名字作為函數實參,傳遞的是整個數組,即形參數組和實參數組完全相同,是存放在同一存儲空間的同一個數組。這樣形參數組
修改時,實參數組也同時被修改了。形參數組的元素個數可以省略。
#include<stdio.h>

//數組作為函數參數,可以省略元素個數
//數組作為函數參數,傳遞是整個數組的地址,修改了函數形參數組元素的值,會影響到外面的實參數組
void change(int array[])
{
printf("array ==%p\n",array);

array[0] = 100;
}

int main()
{
int ages[6] = {10,11,13,15,11,18};

printf("array ==%p\n",ages);

change(ages);

printf("%d\n",ages[0]);

return 0;

}

輸出結果為: array ==0x7fff5be26c00
array ==0x7fff5be26c00
100

Ⅲ C語言中數組作為函數參數

C中數組名代表該數組的首地址,
char
s[]="abc";
s代表的就是『a』在內存中的地址
以地址作參數
,實參和形參同時改變

Ⅳ C語言數組做形參定義語法

a如果是函數是可以的,x[]表示數組x的地址,int x[]等價於int *x

Ⅳ C語言中,數組名作為函數參數,屬於什麼傳遞,為什麼

C語言中,數組名作為函數參數,屬於數組參數傳遞。在VB6.0中,允許使用數組作為實參傳遞到子過程的形參中,數組傳遞必須採用地址傳遞的方式來傳遞參數。

數組型變數名本身只是該數組所佔存儲空間的首地址,函數調用時,系統不會為形參分配數組存儲空間,而是僅僅分配一個存放數組地址(第一個元素地址)的存儲空間,此後,將實參數組的首地址傳遞給形參變數。

(5)c語言數組名可以做形參嗎擴展閱讀:

數組參數在傳遞時應注意以下兩個方面:

1、 在實參和形參列表中只寫數組名,忽略維數的定義,但圓括弧不能省,當數組作為參數傳遞時,系統將實參數組的起始地址傳給過程,使形參數組也具有與實參數組相同的起始地址,若參數是多維數組,每維以逗號分隔。

2、被調過程可分別通過Lbound和Ubound函數確定實參數組的下界和上界。

Ⅵ 在C語言中,用數組名作為函數調用時的實參,實際上傳遞給形參的是____________。

在C語言中,用數組名作為函數調用時的實參,實際上傳遞給形參的是首地址。

因為數組名傳遞的是數組的地址也就是第一個元素的地址。例如:

a[3]這個數組,3指個數,a[0]指第一個元素,全部元素指a[0]~a[2];那數組名a規定的就是首地址。

(6)c語言數組名可以做形參嗎擴展閱讀

C語言中函數參數傳遞的三種方式:

1、傳值,就是把你的變數的值傳遞給函數的形式參數,實際就是用變數的值來新生成一個形式參數,因而在函數里對形參的改變不會影響到函數外的變數的值。

2、傳地址,就是傳變數的地址賦給函數里形式參數的指針,使指針指向真實的變數的地址,因為對指針所指地址的內容的改變能反映到函數外,也就是能改變函數外的變數的值。

3、傳引用,實際是通過指針來實現的,能達到使用的效果如傳址,可是使用方式如傳值。說幾點建議:如果傳值的話,會生成新的對象,花費時間和空間,而在退出函數的時候,又會銷毀該對象,花費時間和空間。

Ⅶ C語言中,用數組名作形參和用指針作形參有區別嗎

還是有差別的 雖然大多數時候都可以相互用
最大的差別就是指針可以改變,可以通過指針改變指向內容的值,但數組名不行
舉個例子:(分別作為形參)
int num[10], *p;
p = num;//此時p指向數組的第一個元素
我在主函數里調用兩個函數
1 Sum(num);
2 Sum(p+2,10);
這就有區別了,因為num數組首地址它不能變化,但是此時p指向了數組的第三個元素,而且後面的那個10也是可以改變的,所以說用指針作為形參的時候要帶一個int n 表示你要處理的數的個數,所以說用指針作為形參的話會給你一種假象,它的確是指向的數組的某個元素(這要看你的指針移動了,比如說p+2等等,數組名不能移動),但是它僅僅只是一個指針,你可以在調用的函數里用sizeof(num),sizeof(p)求它們的值,就知道為什麼總是要加上一個int n了,因為如果不加的話函數就不知道你要操作的數的個數,另外別忘了傳遞數組和傳遞一般的int,double等類型是不一樣的,傳遞數組傳遞的是原數組,函數的操作就改變了原來的數組,而傳遞一般的數只是傳遞它的拷貝,對原來的數沒有影響;
還有什麼不懂的繼續交流~~~

Ⅷ C語言數組做形參的問題

char
(*p)[n]表示p是指向含有n個元素數組的指針變數;
char
**p表示p是指針變數,指向的類型是指針。
用數組名+「&」做實參倒是沒用過
#include
void
Change(char
*a)
{
char
*b="bca";
a=b;
}
void
main()
{char
*b="bca";
char
a[]="abc";
puts(a);
Change(a);
puts(a);
}

Ⅸ C語言中用數組做為形參為什麼形參改變時實參也要變

因為數組傳遞的是數組的首地址,所以也是地址傳遞,所以形參改變時實參也要變。