c語言中數組作為形參,c++以數組為參數的函數怎麼定義

本文目錄一覽:

數組作為實參和形參的形式是怎樣的?

兩者都可以,可以用下面的程序展示。

#include “stdio.h”

#include “stdlib.h”

#include “string.h”

void sortArray(int *a, int num)

//void sortArray(int a[], int num)

{

for (int i = 0; i num; i++)

{

for (int j = i + 1; j num; j++)

{

if (a[i] a[j])

{

int tem = a[i];

a[i] = a[j];

a[j] = tem;

}

}

}

}

void printfArray(int *a, int num)

//void printfArray(int a[], int num)

{

for (int i = 0; i num; i++)

{

printf(“%d\t”, a[i]);

}

printf(“\n\n”);

}

/*

1、數組作為參數時,本質是指針,這是C語言的特點

2、數組作為參數時,裡面的數字有誤均可,對程序不影響

*/

void main()

{

int a[] = { 1, 2, 4, 5, 2, 53, 536, 263, 726, 37, 3 };

int num = sizeof(a) / sizeof(a[0]);

printf(“數組排序前列印:\n”);

printfArray(a, num);

//開始對數組進行排序

sortArray(a, num);

printf(“數組排序後列印:\n”);

printfArray(a, num);

system(“pause”);

}

擴展資料:

用數組名作函數參數與用數組元素作實參有幾點不同。

1、用數組元素作實參時,只要數組類型和函數的形參變數的類型一致,那麼作為下標變數的數組元素的類型也和函數形參變數的類型是一致的。

2、在普通變數或下標變數作函數參數時,形參變數和實參變數是由編譯系統分配的兩個不同的內存單元。在函數調用時發生的值傳送是把實參變數的值賦予形參變數。在用數組名作函數參數時,不是進行值的傳送,即不是把實參數組的每一個元素的值都賦予形參數組的各個元素。

因為實際上形參數組並不存在,編譯系統不為形參數組分配內存。那麼,數據的傳送是如何實現的呢?在我們曾介紹過,數組名就是數組的首地址。

因此在數組名作函數參數時所進行的傳送只是地址的傳送,也就是說把實參數組的首地址賦予形參數組名。形參數組名取得該首地址之後,也就等於有了實在的數組。實際上是形參數組和實參數組為同一數組,共同擁有一段內存空間。

注意:

數組有兩個特殊的性質。一是不能複製數組;二是使用數組名字時,數組會自動轉化為指向其第一個元素的指針。由於數組不能複製,所以無法編寫使用數組類型形參的函數,因為數組會被自動轉化為指針。

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語言中的變數聲明中,實參傳遞給形參用數組怎麼表示

數組作為形參,傳遞的是能夠代表一個維度的數組的數組名,也就是地址。所以形參只能是一維數組的形式(當然可以是用指針表示的)。而實參可以是一維數組,也可以使多為數組的某一維的數組名。下面是定義的兩中普通函數的形式(假設傳遞的是整形的數組)

void

function(int

a[]){}

void

function(int

*

a){}

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

c語言中數組名作為實參傳給被調用的函數時,形參獲得的是數組的起始地址。

還是用例子說話吧。

#include

int

*arry(int

*a)

{

int

*b;

b

=

a;

int

i;

for(i=0;i5;i++)

{

printf(“%d”,a[i]);

}

return

b;

}

int

main()

{

int

a[5]

=

{1,2,3,4,5};

int

*c;

int

i;

c

=

arry(a);

for(i=0;i5;i++)

{

printf(“%d”,c[i]);

}

}

主要是通過指針把數組,例如main裡面的a的地址傳入arry函數,然後在arry函數中用一個兼容類型的指針接收地址,然後就可以再這個指針下的地址操作地址上面的數據了。

arry返回的時候也是返回一個指針(地址)。

c語言c++語言如何用二維數組做形參?

C/C++中,二維數組的第一維的每一個元素都是一維數組。所以,用指向一維數組的指針或用第一維維數空缺的二維數組作為函數的形式參數都能達到目的。設處理數組為int型,舉例代碼如下:

//#include “stdafx.h”//If the vc++6.0, with this line.

#include “stdio.h”

void myprint(int (*p)[5]){//p是指向有5個int型元素的一維數組的指針

//void myprint(int p[][5]){//這樣寫效果是一樣的

    int i,j;

    for(i=0;i3;i++){

        for(j=0;j5;printf(“%3d”,p[i][j++]));

        printf(“\n”);

    }

}

int main(void){

    int a[3][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}};

    myprint(a);

    return 0;

}

如何在C語言中以數組指針作為形參輸出數組

數組 與 普通指針 的區別:

1、指針的本質是一個與地址相關的複合類型,它的值是數據存放的位置(地址);數組的本質則是一系列的變數。

2、數組名對應著(而不是指向)一塊內存,其地址與容量在生命期內保持不變,只有數組的內容可以改變。指針可以隨時指向任意類型的內存塊,它的特徵是”可變”,所以我們常用指針來操作動態內存。

3、當數組作為函數的參數進行傳遞時,該數組自動退化為同類型的指針。

因為第三條,當把數組名作為函數的形參進行傳遞時,該效果等同於傳遞一個同類型的指針。直接在程序當中調用 函數名(數組名)即可。

常式:

#includestdio.h

int a[]={1,2,3,4,5,6};

void print(int a[]){//數組指針作為形參

    for(i=0;i6;i++) printf(“%d “,a[i]);//輸出數組

}

int main(){

    print(a);//傳入數組名

    return 0;

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/230231.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-10 18:17
下一篇 2024-12-10 18:17

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字元串操作中,capitalize函數常常被用到,這個函數可以使字元串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • 單片機列印函數

    單片機列印是指通過串口或並口將一些數據列印到終端設備上。在單片機應用中,列印非常重要。正確的列印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的列印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • 三星內存條參數用法介紹

    本文將詳細解釋三星內存條上面的各種參數,讓你更好地了解內存條並選擇適合自己的一款。 一、容量大小 容量大小是內存條最基本的參數,一般以GB為單位表示,常見的有2GB、4GB、8GB…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29

發表回復

登錄後才能評論