Accessing Two Dimensional Array
Two dimensional array में से यदि आप किसी single element को access करना चाहते है तो ऐसा आप उसकी position index को access करके कर सकते है। उदाहरण के लिए यदि आप 2nd row के 1st column की value print करना चाहते है तो इसके लिए आप इस प्रकार statement लिखेंगे।
printf("Element at 2nd row 1st column is :%d",myArray[2][1]);
|
यदि आप array के सभी elements को एक बार में print करना चाहते है तो इसके लिए आप 2 loops use करते है।
for(int i=0;i<4;i++)
{ for(int j=o;j<2;j++) { printf("%d",myArray[i][j]); } } |
Example
int i,j;
printf("Please enter array elements : ")
|
Passing Array to Function
आप चाहे तो एक array को किसी function में argument के रूप में भी pass कर सकते है।
एक महत्वपूर्ण बात आपको ये ध्यान रखनी चाहिए की C language function के किसी local variable का address return किया जाना allow नहीं करती है। इसलिए आप जिस को return करना चाहते है उसे आपको static define करना होगा।
जिस function से आप array return करना चाहते है उसका return आपको pointer के साथ declare करना होगा। क्योंकि जैसा की मैने पहले बताया C language में array का pointer return करना ही allow है।
return-type function-name(array-type array-name[])
{ //Function code here... } |
#include<stdio.h>
int sum(int num[], int size); void main() { int num[5] = {2,2,2,2,2}; int res; res = sum(num,5); printf("Sum of arrays is %d\n",res); } int sum(int num[], int size) { int i; int result=0; for(i=0;i<size;++i) { result += num[i]; } return result; } |
Sum of array is 10
|
Returning Array from Function
Normal variables के अलावा किसी function से array भी return किया जा सकता है। C language में एक complete array को return करना allow नहीं है लेकिन आप array का pointer return कर सकते है। इसके लिए आपको array का नाम बिना index के साथ specify करना होगा।एक महत्वपूर्ण बात आपको ये ध्यान रखनी चाहिए की C language function के किसी local variable का address return किया जाना allow नहीं करती है। इसलिए आप जिस को return करना चाहते है उसे आपको static define करना होगा।
जिस function से आप array return करना चाहते है उसका return आपको pointer के साथ declare करना होगा। क्योंकि जैसा की मैने पहले बताया C language में array का pointer return करना ही allow है।
return-type * function-name
{ //Function code here... } |
#include<stdio.h>
int* table(int num) { static int tbl[10]; int i; for(i=1;i<=10;i++) { tbl[i] = num*i; } return tbl; } int main() { int *t; int num; int j; printf("Please enter a number to generate its table.\n"); scanf("%d",&num); t=table(num); printf("Table of %d is given below : \n",num); for(j=1;j<=10;j++) { printf("%d\n",t[j]); } return 0; } |
Please enter a number to generate its table.
2 Table of 2 is given below : 2 4 6 8 10 12 14 16 18 20 |
Pointer to Array
एक array का नाम constant pointer होता है। यह pointer array के first element को point करता है। जब भी आप कोई array create करते है तो यह pointer automatically create हो जाता है।
इसलिए यदि आप किसी array के नाम को किसी pointer variable को assign करते है तो इसके लिए आपको array के नाम से पहले address of (&) operator define करने की आवश्यकता नहीं होती है। क्योंकि जैसा की मैने पहले बताया एक array का नाम already constant pointer होता है।
उदाहरण के लिए आपने एक array create किया है Num नाम से जिसमें 5 integer numbers है।
यदि इसी array के नाम को किसी integer pointer variable को assign किया जाता है तो वह variable Num array के first element 1 को point करेगा।
इस situation में pointer variable n array के first variable का address hold करता है। यदि इसे value at (*) operator के साथ use किया जाए तो यह variable 1 print करता है। इसी प्रकार आप इस pointer variable द्वारा array के सभी elements को access कर सकते है।
int Num[5] = {1,2,3,4,5};
|
यदि इसी array के नाम को किसी integer pointer variable को assign किया जाता है तो वह variable Num array के first element 1 को point करेगा।
int *n;
n=Num; |
इस situation में pointer variable n array के first variable का address hold करता है। यदि इसे value at (*) operator के साथ use किया जाए तो यह variable 1 print करता है। इसी प्रकार आप इस pointer variable द्वारा array के सभी elements को access कर सकते है।
#include<stdio.h>
int main() { int Num[5] = {1,2,3,4,5}; int *n; n=Num; printf("%d",*n+2); return 0; } |
3
|
0 Comments