在C語言中,函數中要用數組做參數,可以采用三種方式,其中后兩種均可適用于變長數組參數。
創(chuàng)新互聯建站是專業(yè)的甘谷網站建設公司,甘谷接單;提供網站設計、成都網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行甘谷網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
1 直接以定長數組做參數,聲明形式為:
ret_type func(int a[100]);
這里就是以100個元素的數組做參數的。
2 聲明時不帶長度,即:
ret_type func(int a[]);
3 以指針替代數組,即:
ret_type func(int *a);
2,3兩種均可以用于變長數組。不過這種情況下,需要與函數約定數組長度的確定方法,比如約定規(guī)模 ,約定結束值,增加額外參數傳長度,在數組元素中包含長度,或采用全局變量傳長度等等。
C語言中求一個二維數組有幾行的方法如下:
假設有定義int nums[10][20];
二維數組行數可以用sizeof計算:
rows = sizeof(nums)/sizeof(nums[0]);
第二個問題,為什么gets會提示未定義標識,有兩種可能:
一、編譯器支持gets庫函數,但是你沒有包含頭文件#includestdio.h;
二、編譯器本身不支持gets庫函數,因為gets函數是一個不安全函數,容易導致數組越界,所以很多編譯器都不再有這個庫函數了。取而代之的是gets_s或者fgets這類相對安全的函數,可以試試。
void
display(int)
//在c語言中,這是一個函數聲明.表明該函數的參數類型為int,返回值類型為void
//如果后面緊跟著大括號的話,那就這就是一個函數定義。
//在c程序中,函數必須需要先聲明后使用,和變量的使用一樣
源代碼如下:
#include "stdio.h"
main()
{
int x;
int i = 1;
for(x=1599;x=2000;x++)
{
if(x%4==0x%100!=0||x%400==0)
printf("%d ",x);
if ((i++)%5 == 0) //實現換行
{
printf("\n");}
}
}
擴展資料
1、C語言函數是用來實現某個功能的程序段,每一個函數都有自己的功能。應該把實現某個功能所需的代碼都寫在函數中。
2、當調用(執(zhí)行)一個函數時,計算機就會按順序執(zhí)行函數中的所有代碼,從而展示函數所實現的功能。
3、不同的功能交給不同的函數去實現。比如,將暫停播放MP3的代碼寫到一個函數中,將停止播放MP3的代碼寫到另一個函數中。因此,一個C程序中可能會有很多的函數。
int **myArray = new int[cols][rows];
或者
int* myArray[]= new int[cols][rows];
或者
int myArray[][] = new int[cols][rows];
int output2dArr(int rows,int cols ,int arr[rows][cols]);你這個函數定義就有問題。因為定義數組時必須定義數組的大小。你可以這樣寫int output2dArr(int rows,int cols ,int arr[ ][ ]);
還有你沒有理解數組,定義數組的時候就需要為數組開辟一塊空間,這個空間開辟后就不能再增加了。還有c語言不同于c++。c語言的定義是必須放在最前面的,而c++只需要先定義再使用就可以了。你把數組的大小改為定值就可以了。必須是常數