c語言調用數組
❶ 在c語言中怎麼將子函數中的數組和函數調用出來
來傳送子函數中的數組有多種方法——可以通過函數返回值返回地址傳遞數內組;也可以通過函數輸入參數容來傳遞數組;還可以通過全局變數來傳遞數組。
子函數本身可以直接在作用域中進行調用。
1、通過函數返回值返回地址傳遞數組。
聲明函數時需要聲明函數返回值類型為對應數組的地址,此時可以返回數組的地址,結合數組元素的地址關系可以傳遞整個數組,同時可以根據數組的特性傳遞多個參數。
注意:子函數是C語言模塊化編程思想的核心,其方法是通過輸入介面和輸出介面實現對黑盒的調用,故對其內部數據的輸入和調用也需要通過輸入介面、輸出介面和程序的公共區域實現。
❷ 關於c語言中數組作為函數參數的函數之間調用問題
1、新建一個數組作為參數項目,如圖所示:
❸ C語言 數組調用
1.一下程序
main()
{ char s[]="abcde";
s+=2;
printf("%d\n",s[0]);
}
答案:程序出錯
2.一下程序
fun(int x,int y)
{ static int m=0,i=2;
i+=m+1; m=i+x+y;return m;}
main()
{ int j=1,m=1,k;
k=fun(j,m); printf("%d,",k);
k=fun(j,m); printf("%d\n",k);
}
答案:5,11
3.若有定義:char*x="abcdefghi"; ,能正確運用了 strcpy函數的是:
char y[10]; *s; strcpy(s=y+1,x+1);
4.有以下程序執行後W結果是;
int fun1(double a) {return a*a;}
int fun2(double x,double y)
{ double a=0,b=0;
a=fun1(x); b=fun1(y);return(int)(a+b);}
main()
{ double w, w=fun2(1.1,2.0);.......}
答案:5.0
5.設函數的fun定義形式為:void fun(char ch,flaot x) {.....}
則對函數fun的調用語句是: fun(32,32);
6.已有定義char a[]="xyz",b[]={'x','y','z'};,則敘述正確的是:
a數組的長度大於b數組長度
7.一下敘述錯誤的是C)
A.對於double類型數組,不可以直接用數組名進行整體輸入或輸出
B.數組名代表的是數組所佔存儲區的首地址,其值不可改變
C.當程序執行中,數組元素的下標超出所定義的下標范圍時,系統將給出"下標越界"的出錯信息
D. 可以通過賦值的方式確定數組元素的個數
8.有以下程序:
char fun(char x,char y)
{ if (x<y) return x;
return y; }
main()
{ int a='9',b='8',c='7';
printf("%c\n", fun(fun(a,b),fun(b,c)));
}
答案是:7
9.若定義以下函數:
double myadd(double a,double b)
{ return (a+b);}
並將其放在調用語句之後,則在調用之前應對其說明,正確的說明有:
double myadd(double,double);
double myadd(double b,double a);
double myadd(doubie x,double y);
10有以下程序,執行後輸出的是:
fun( int x, inty)
return(x+y);}
main()
int a=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);}
答案:8
11.有以下程序結果是
#define P 3
F(int x)
{ return (P*x*x);}
main()
{ printf("%d\n",F(3+5));}
答案:192
❹ C語言數組怎麼調用
基本上抄是對的,scanf()里的參數就是變數的地址
數組名你可以理解為這個數組的起始地址(第一個元素的地址),比如你這里的a,它就相當於是&a[0],a+i就是第i個元素的地址,所以要想給這個數組賦值,還可以這樣
for(i=0;i<6;i++)
scanf("%d",a+i);
❺ C語言數組的引用
A 拿到的是數組元素的地址,是取地址,但是題目要求是對數組元素的引用,是需要數組元素的值。
❻ C語言調用數組返回數組怎麼做
#include <stdio.h>
#define MIN(x,y)
int * add_1();
main()
{
int * p = add_1();
int b[5];
for(int i=0;i<5;i++)
{
b[i] = *(p+i);
}
for(i=0;i<5;i++)
{
printf("%d",b[i]);
}
}
int * add_1()
{
int static a[5]={1,2,3,4,5};
return a;
}
(6)c語言調用數組擴展閱讀:
注意事項
一、該數組不能是返回函數的局部變數數組,因為局部變數數組在退出函數後會被釋放。
可以是全局變數,靜態局部變數,動態分配內存,以及從函數參數傳過來的數組地址。
二、返回指針時,無法返回長度,所以需要其它方式傳回數組長度,以下是幾種常用的方法。
1、約定固定長度。
2、以函數參數返回數組長度。
3、將長度保存在全局變數中。
4、約定數組結束標記。
5、在數組中存儲數組長度,如存在第一個元素中。
有些時候需要子函數將一個數組返回出來,通常是兩種方法,一種是靠指針,另一種是結構體。
例如指針:
#include <stdio.h>
char *test(char *tmp)
{
return tmp;
}
void main(void)
{
printf("%s",test("第一個測試例子 "));
}
❼ c語言其他函數怎麼調用主函數的一個數組
可以定義在主函數外,即定義成全局變數.
也可以以參數形式傳入被調函數中.
比如 定義的是A[M][N]形式的
參數就用int A[M][N]
或者用數組指針int (*p)[N]
❽ c語言中怎樣引用數組
應該是c吧。原復因是:制
你應該把數組的聲明和引用分開,聲明的時候〔〕里邊放的是元素的個數,比如int a[3][4]就說明是3行4列。
引用的時候〔〕里的數的意義就不一樣了,是索引。而且你應該格外注意的是,c語言的索引是從0開始的。舉個簡單的例子吧。
int a[3][2];這個2*3的二維數組。他的索引和排列應該是
a[0][0],a[0][1]
a[1][0],a[1][1]
a[2][0],a[2][1]
看到了吧,索引比聲明的時候要小1。
❾ 在C語言中,怎樣引用數組中所有的元素啊
要引用數組宏的每個元素做些計算,可以將數組及數組的長度作為參數同時傳遞給調用函數就可回以實現了,比如:答
#include<stdio.h>
int sum(int a[], int size)
{
int i, result = 0;
for (i = 0; i < size; i++) {
result += a[i];
}
return result;
}
main() {
int a[8];
int s,i;
for (i = 0; i < 8; i++) {
scanf("%d", &a[i]);
}
s = sum(a, 8);
printf("%d", s);
}
❿ c語言自定義數組並調用
動態內存分配實現
#include<stdio.h>
#include<malloc.h>
intmain(void)
{
int*a,n,i;
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;++i)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;++i)
{
printf("%d",a[i]);
}
free(a);
return0;
}
或者,如果編譯器支持C99的話,直接定義int a[n];即可