『壹』 c語言用函數實現數組賦值
void
Chg_Array(int
array[],
int
size,
int
value)
{
int
i;
for(i=0;i<size;i++)
array[i]=value;
}
Chg_Array(M_a,
31,
9)
//將數組
M_a
的31個元素賦值為9.
一維數組不需要二維指針。
『貳』 關於c語言中數組作為函數參數的函數之間調用問題
1、新建一個數組作為參數項目,如圖所示:
『叄』 c語言函數和數組結合
形參,可以是數組也可以是指針,形參變數名不需要和實參一樣,所以可不使用a做變數名。但數組傳參,傳的地址,即使閉實參和形參名不一樣,操作的地址都是一樣的。
『肆』 c語言 子函數中定義數組
是滴,除非定義在函數外面。作用域跟{}有關
『伍』 c語言中能不能定義函數數組
函數不可以定義為數組,可以用函數指針來操作。
1.函數指針的數組定義方法:返回值類型( * 指針變數名[Number]) (形參列表)。
例如:
double add(double a,double b){}
double sub(double a,double b){}
double mul(double a,double b){}
double div1(double a,double b){}
double (*oper_func[])(double, double) = {add,sub,mul,div1};//函數指針的數組定義。
2.函數指針是指向函數的指針變數。 因而「函數指針」本身首先應是指針變數,只不過該指針變數指向函數。這正如用指針變數可指向整型變數、字元型、數組一樣,這里是指向函數。
C在編譯時,每一個函數都有一個入口地址,該入口地址就是函數指針所指向的地址。有了指向函數的指針變數後,可用該指針變數調用函數。
(5)c語言數組函數擴展閱讀:
指針函數和函數指針的區別:
這兩個概念都是簡稱,指針函數是指返回值是指針的函數,即本質是一個函數。我們知道函數都有返回類型(如果不返回值,則為無值型),只不過指針函數返回類型是某一類型的指針。其定義格式如下所示:返回類型標識符*函數名稱。
返回類型可以是任何基本類型和復合類型。返回指針的函數的用途十分廣泛。事實上,每一個函數,即使它不帶有返回某種類型的指針,它本身都有一個入口地址,該地址相當於一個指針。比如函數返回一個整型值,實際上也相當於返回一個指針變數的值,不過這時的變數是函數本身而已,而整個函數相當於一個「變數」。
參考資料:網路 -函數指針
『陸』 c語言函數怎麼調用數組部分
一、數組可定義為全局變數,函數直接調用。
二、數組可定義為局部變數,再通過參數傳遞到函數中調用(實參傳數組名,表示數組首地址,也可通過指針或數組名+數字來傳遞數組局部地址)。
三、main函數想要調用函數返回的數組,可用static定義靜態變數或malloc定義動態數組(字元串常量也可返回使用,但局部變數,在函數調用結束會被釋放,不能作為返回地址使用)。
下面是演示代碼:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
char str1[]="我是全局變數數組";
char *fun0(char str2[]);
char *fun1();
char *fun2();
int main()
{
char *str3=NULL,*str4=NULL,*str5=NULL;
char str2[]="我是main函數的局部數組變數";
str3=fun0(str2);
printf("str3:%s,fun函數調用結束,我的地址依然可以使用 ",str3);
str4=fun1();
printf("str4:%s,fun函數調用結束,我的地址依然可以使用 ",str4);
str5=fun2();
printf("str5:%s,fun函數調用結束,函數結束不會自動釋放 ",str5);
free(str5);
return 0;
}
char *fun0(char s[])
{
static char str3[]="我是fun函數申明的靜態數組變數";
printf("str1:%s,fun函數可以直接調用 ",str1);
printf("str2:%s,fun函數通過參數將我的地址傳進來 ",s);
return str3;
}
char *fun1()
{
char *str4="我是fun1函數的字元串常量";
return str4;
}
char *fun2()
{
int len;
char sTemp[]="這是一個臨時數組,之後用於給mallc申請的地址傳值,傳遞內容為:(我是fun函數通過mallic申請的數組)";
char *str5=NULL;
len=strlen(sTemp+63);
str5=(char *)malloc(sizeof(char)*len+1);
if(!str5)return NULL;
strcpy(str5,sTemp+63);
str5[len-2]=0;
return str5;
}
『柒』 C語言數組的輸出函數
#include "stdio.h" void input(int a[10]) //給一維數組輸入數據 { int i; for(i=0;i<10;i++) scanf("%d",&a[i]); } void output(int a[10]) //輸出一維數組輸入數據 { int i; for(i=0;i<10;i++) printf("%d ",a[i]); } int main() { int b[10]; input(b); //調用input函數給數組b賦值 output(b);//調用output函數輸出數組b中的值 }
『捌』 c語言數組調用函數
平均列印用的%d應該用%f
『玖』 c語言 數組作為函數參數怎樣寫
寫函數時寫成指針,比如一維的是 *p 二維的就是 **p
調用函數時,直接把對應的數組名當參數就行了,不要加[ ],傳數組首地址進去就OK了
『拾』 c語言數組在函數中的定義
用malloc申請一段內存來將原數組內容復制一遍.
對復制的數組進行排序,並進行你需要的運算
用free釋放內存(就你現在的需求,該內存將不再使用,應釋放)
返回結果
要點是.申請到的內存賦值給函數的內部的變數,並且在釋放前該變數不可用於其它用途.數據的指針操作換用別一指針進行.
由於malloc得到的內存不可能再次被malloc得到(由操作系統維護,無需擔心).而該內存的使用周期內僅該函數可以使用其指針,所以其它單元不可能合法使用該內存.