1樓:匿名使用者
#include
#define row 3
#define col 3
void initary(int (*ptr)[col]);
void printary(int (*ptr)[col]);
void main()
void initary(int (*ptr)[col])}}void printary(int (*ptr)[col])printf("\n");}}
lz最好把功能都封裝到函式裡面,這樣就會很清晰的了
2樓:陳冠鋼
#include "stdio.h"
void fun(int (*p)[3]) }}
void main()
3樓:孤鬆獨海
int a[20][20];
int *p=a;
*p++= 這樣子賦值
4樓:匿名使用者
#include
void read(int (*a)[5],int rows) //rows是二維陣列的行數}}
int main(void)
putchar('\n');
}return 0;
5樓:匿名使用者
#include
#define m 2
#define n 3
void input(int *a,int num)}void output(int *a,int m,int n)printf("\n");}}
void main()
6樓:匿名使用者
void get_val(int array[200], int m, int n, int *max, int *min)
if(*min >
printf("max:%d,min:%d\n",max,min);
}編譯通過並通過測試,另外還可以通過指標傳遞:
void get_val(int *array, int m, int n, int *max, int *min)
if(*min > *(array+j*n+i))}}}另外,虛機團上產品**,超級便宜
c語言函式中怎麼返回一個二維陣列
7樓:浪小客
1、我們首先定義一個二級指標和一個行列變數[int ** array,row,column;]。
2、然後我們編寫進入行和列的語句,**如圖所示。
3、接下來我們可以用一維陣列開啟一維一維陣列。
4、接下來,我們使用[array [i] =(int *)malloc(sizeof(int)* column);]來為陣列再次生成包含該陣列的新陣列。
5、然後我們可以為它賦值並輸出[**如圖所示]。
6、執行程式後我們可以看到這種效果。
8樓:
需要動態申請的啊,堆疊上面的陣列是不能直接返回的會在函式退出的時候銷燬掉
#include
int **returnnum()
}return a;//error: cannot convert `int (*)[5]' to `int**' in return
} int main()
printf("\n");
free(cpy[i]);
}free(cpy);
return 0;}
9樓:手機使用者
#include int *_print(int (*_pointer)[2],int n);void main(void),}; int *p,row; printf("請輸入行號實參是二維陣列名 printf("%d\n",*(p+1)); // 輸出row行1列的元素}/* 定義指標函式_print 形參是指向由2個元素組成的一維陣列的指標 函式返回值是 地址*/int *_print(int (*_pointer)[2],int n)
希望對你能有所幫助。
10樓:匿名使用者
c語言中函式不能直接返回一個二維陣列。但是可以通過其他方法實現類似功能:
1、把二維陣列定義為全域性變數 這樣可以直接在另一個函式中呼叫2、把二維陣列作為指標傳入到第一個函式中 然後同樣作為指標傳到另一個函式中
3、動態分配記憶體 在賦值函式中動態分配 並用返回值返回,在另一個函式中進行訪問
11樓:使用氟
c語言無法返回空間,只能返回指標。
函式內動態申請,返回指標,缺點是容易出現野指標,根據誰申請誰釋放原則。
設定全域性引數,缺點全域性資料稍微多了一些,而且破壞封裝思想。
c語言中,主函式中已經賦值的陣列怎麼呼叫到子函式
12樓:我努力的方式
一般bai
是需要主函式
du提供儲存數
據的陣列,在參zhi數中給出陣列dao起始地址,專然後子函式在其中填充,屬比如要準會的整數是56 void fun(int *a,int b) void main()
c語言如何在子函式中對主函式中的二維陣列值進行修改? 二維陣列已經在主函式中用動態陣列分配了空間。
13樓:古今創造
用指標做函式引數可以實現!
14樓:匿名使用者
用陣列時,必須要知道二維陣列的後一個維度,否則無法正確修改,比如:
void modify(int a[10])void main()
用指標方式實現時要注意二維陣列的建立過程。比如以上的int a[5][10],用指標實現相同功能的**如下:
void modify(int **a)void main()
c語言如何在子函式中改變主函式陣列值?
15樓:匿名使用者
兩種方法bai.
一:把a作為引數
du傳遞給zhisss();
int sss(int x)
這樣僅僅只是使用daoa的值,是把a的值複製給x,使x的值等於內a,可以在子函式容中使用a的數值,但無法改變主函式中a的值.
二,使用指標.宣告一個指標指向a,把a的地址作為引數傳遞給子函式,那麼在子函式中不但可以使用a的值還可以修改主函式中a的值.
16樓:千年老妖
變數有全域性變數和區域性變數之分,要想子函式改變母函式的變數值有回兩種辦法:答
1是將變數定義成全域性變數(在#include下面就定義),然後在子函式中直接使用變數名。
2是將指向該變數的指標當作引數傳遞給子函式。
17樓:匿名使用者
你的程式恐怕連編譯都不能通過吧,有語法錯誤。
18樓:心聲代
你那個h好像始終是0吧
c語言用函式實現陣列賦值
19樓:嵇娥朱曉楓
你這樣屬於溢位,因為後面的幾個元素不在為陣列分配記憶體區域內,因此可以被其它資料任意佔用,值也就可能會改變。這種操作應該避免,對於陣列賦值,應該進行嚴格的邊界檢查
20樓:榮孟譙良弼
void
chg_array(int
array,
intsize,
intvalue)
chg_array(m_a,
31,9)
//將陣列
m_a的31個元素賦值為9.
一維陣列不需要二維指標。
21樓:徐志偉
程式語言:
void chg_array(int array, int size, int value)
chg_array(m_a, 31, 9) //將陣列 m_a 的31個元素賦值為9. 一維陣列不需要二維指標。
22樓:仁昀昀
如果你非要用指標的話,可以把陣列的形式改寫成指標的形式,就像一樓的
void chg_array(int array, int size, int value)
23樓:匿名使用者
直接賦值就行啊,有什麼問題
c語言二維陣列問題
寫完以後我發現有點長,樓主給點耐心看,不懂我們再交流 a是整個二維陣列的首地址,short長度為2,sizeof a 2 5 5 50 a 1指向二維陣列的第二個元素,它僅僅是一個指標,如果在a 1前面加一個 號,就是第二個元素的值,即a 0 1 所以,a 1是一個指標,它指向二維陣列中的某個數,指...
C語言的問題關於二維陣列的
從二維陣列的角度來看,a是二維陣列名,a代表整個二維陣列的首地址,也是二維陣列0行的首地址a 1代表第一行的首地址。int a 3 4 設陣列a的首地址為1000。a 0 是第一個一維陣列的陣列名和首地址,因此也為1000。a 0 或 a是與a 0 等效的,它表示一維陣列a 0 0 號元素的首地址,...
C語言問題。定義二維陣列,C語言問題。定義一個二維陣列
ok洛陽水席 include int main sum 0 for i 0 i 5 i return 0 樓主基本沒有大錯誤,只是不夠仔細,用來儲存特定值的變數使用前一定要初始化,如本例中的最大值,最小值,下標,都是必須初始化的!整型與整型運算會得到整型,1 2 0,5 4 1 系統會捨去小數部分。...