2012-06-20 3 views

ответ

12

Ничего, [] это просто синтаксический сахар для указателя.

Вот простой тест, чтобы показать, что даже не разница в индексации:

#include <stdio.h> 

void fun1(int a[][3]) { printf("%d\n", a[2][2]); } 
void fun2(int (*a)[3]){ printf("%d\n", a[2][2]); } 

void main() { 
    int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; 
    fun1(a); // prints 9 
    fun2(a); // prints 9 
} 
3

Ничего, оба такие же. Только для нашей цели.

2

Нет разницы между двумя вышеуказанными. В C, когда обозначение массива используется для параметра функции, оно автоматически преобразуется в объявление указателя.

Смежные вопросы