Skip to content

Array Basic

1Shares
Image

المصفوفة عبارة عن مجموعة من العناصر من نفس نوع البيانات(integer, string,…etc)

يتم انشاؤها كالاتي: ;int a[5] تعني انشاء مصفوفة تتكون من 5 عناصر يتم الوصول اليهم من خلال رقم ال index الخاص بكل خانة
 
يبدأ الترقيم من 0 ( أول عنصر في المصفوفة)  الى 1-n  (اخر عنصر في المصفوفة)
 
عند عمل int a[5] يتم تعريفها داخل ال stack مقسمة الي 5 خانات فارغة ويكون ال adress لكل خانة متتابع حسب نوع البانات المستخدم
 
اذا كان integer فهو عبارة عن 4 byte, اذا كان عنوان الخانة الاولى a[0] 100, فان عنوان a[1] 104 ……الى عنوان a[4] فسيكون 120
 
يتم اعطاء المصفوفة قيم بعدة طرق:
 
اما عن طريق ال indexing
 
    #include<stdio.h>

int main() {
	int a[5];
	a[0] = 1;
	a[1] = 2;
	a[2] = 3;
	a[3] = 4;
	a[4] = 5;
	
	printf("%d", a[3]); // 4
	
	
	return 0;
}   
            
                    
        

 

أو اعطاؤها القيم اثناء مرحلة الانشاء:

    #include<stdio.h>

int main() {

	int a[5] = {1, 2, 3, 4, 5};
	
	printf("%d", a[2]); // 3
	
	
	return 0;
}   
            
                    
        

 

اذا قمنا بعمل مصفوفة حجمها 10 عناصر وقمنا باعطاء قيم فقط ل 7 عناصر, باقي القيم سيتم اعطاؤهم قيمة 0 بشكل تلقائي

 

    #include<stdio.h>

int main() {
	
	int a[10] = {1, 2, 3, 4, 5, 6,7};
	printf("%d\n", a[8]); // 0
	printf("%d", a[6]); //7
	
	return 0;
}   
            
                    
        

 

يمكننا الوصول الى جميع عناصر المصفوفة باستخدام for loop

 

    #include<stdio.h>

int main() {
	int a[5] = {1, 2, 3, 4, 5};
	
	for (int i = 0; i < 5; i++) {
		printf("a[%d] = %d\n", i, a[i]);
	}
	
	return 0;
}   
            
                    
        

 

يمكنك انشاء المصفوفة دون تحديد الحجم داخل الاقواس, ال compiler سيقوم بشكل تلقائي بعد عدد العناصر, هذه الطريقة افضل و أكثر أمان اذا بدك تعمل قيم لجميع المصفوفة أو ما بدك تعد العناصر بشكل غير تلقائي 

    #include<stdio.h>

int main() {
	int a[] = {1, 2, 3,4 ,5 ,6,7, 8, 9, 10};
	
	for (int i = 0; i < sizeof(a)/ sizeof(a[0]); i++) {
		printf("a[%d] = %d\n", i, a[i]);
	}
	
	return 0;
}   
            
                    
        

 

لاحظ قمنا باستخدام sizeof لمعرفة عدد مرات تكرار ال loop

sizeof(a): عبارة عن حجم المصوفة(عدد العناصر) وهي 10 عناص ضرب الحجم الذي يشغلة كل عنصر حسب نوع البانات, هنا لدينا integer

10 * 4 = 40

sizeof(a[0]): عبارة عن حجم العنصر الاول, وقد يختلف حسب نوع البيانات, هنا نوع البانات لدينا integer ويحجز 4byte

عدد التكرارات = 40/4 = 10 تكرارات 0–>9

 

ويمكننا اعطاء قيم للمصوفة عن طريق user-input

    #include<stdio.h>

int main() {
	
	int n;

	printf("enter the szie of the array: ");
	scanf("%d", &n);

	int a[n];

	for (int i = 0; i < n; i++) {
        printf("a[%d] = ", i);
		scanf("%d", &a[i]);
	}

	printf("=============================\n");

	for(int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
		printf("a[%d] = %d\n", i, a[i]);
	}
	
	return 0;
}   
            
                    
        

1Shares

YOU MAY LIKE THIS

Structure
Structure
أغسطس 29, 20254 min read

Leave a Comment

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Image Not Found

MOST DISCUSSED

0
Would love your thoughts, please comment.x
()
x