المصفوفات متعددة الأبعاد
تدعم لغة السى أيضا المصفوفات متعددة الأبعاد (أو بمعنى آخر مصفوفات المصفوفات ).
أبسط نوع هو المصفوفة ثنائية الأبعاد . وهو ما يخلق مصفوفة (مجموعة) مستطيلة مكونة من صفوف وأعمدة .
المصفوفات الثنائية الأبعاد :
إعلان المصفوفة ذات البعدين
لكتابة مصفوفة ذات بعدين نكتب مصفوفة عادية ثم نضيف إليها صف آخر كما يلى :
حيث ثم إنشاء المصفوفة الثنائية وأعطينا قيم لكل صف من صفوف المصفوفة .
إعطاء قيم للمصفوفة ثنائية الأبعاد (التهيئة) :
الطريقة الأولى :
كما فى المثال السابق "إعلان ثم بعد ذلك تهيئة" .
الطريقة الثانية :
وهى مشابهة للمصفوفة ذات البعد الواحد أى "إعلان وتهيئة فى نفس الوقت " .
مثال :
char temp[3][2];
هنا : إعلان مصفوفة حروف أسمها temp أى درجة الحرارة على شكل مصفوفة مكونة من 3 صفوف و 2 عامود .
العنصر الأول : temp[0][0] "صف أول 0 و عامود أول 0 "
والعنصر الثانى هو : temp[0][1] "صف أول 0 و عامود ثانى 1"
والعنصر الثالث هو : temp[1][0] "صف ثانى 1 و عامود أول 0 "
والعنصر الرابع هو : temp[1][1] " صف ثانى 1 و عامود ثانى 1 "
والعنصر الخامس هو : temp[2][0] " صف ثالث 2 وعامود أول 0 "
والعنصر الأخير هو : temp[2][1] " صف ثالث 2 و عامود ثانى 1 "
مثال :
للحصول على مصفوفة حروف مكونة من 3 صفوف و 5 أعمدة نكتب :
char two_d[3][5];

أى " إعلان مصفوفة حروف char اسمها two_d ذات بعدين : عدد الصفوف 3 وعدد الأعمدة 5 "
للوصول / تعديل قيمة في هذه المصفوفة نحتاج دليلين subscripts :
char ch;
ch = two_d[2][4];
· السطر الأول : إعلان متغير نوع char اسمه ch.
· السطر الثانى : جعل قيمة المتغير ch بقيمة العنصر الموجود بالصف الثالث (ذو الدلالة 2 ) والعمود الخامس (ذو الدلالة4 ) .
أو
two_d[0][0] = 'x';
· جعل قيمة العنصر الموجود بالصف الأول والعامود الأول بالمصفوفة two_d (المعرفة سابقا على أنها مصفوفة حروف) بالحرف x (علامتى التنصيص للدلالة على الحروف ) .
وبالمثل يمكن تهيئة مجموعة متعددة الأبعاد كما يلى :
int two_d[2][3] = {{ 5, 2, 1 },
{ 6, 7, 8 }};
أى : إعلان declare مصفوفة نوع int ثنائية الأبعاد تحتوى على 2 صف و 3 عامود و تهيئة initialize عناصرها بحيث تصبح عناصر الصف الأول 5, 2, 1 و عناصر الصف الثانى 6, 7, 8 .
التعامل مع السلاسل الحرفية (النصوص) string باستخدام المصفوفات :