2015-01-16 2 views
-3

Я хочу знать разницу четких разностей между статическими и динамическими в C#. Я видел много сообщений в разных блогах, но я не был удовлетворен их ответами.В чем разница между Static и Dynamic в структуре данных

Пожалуйста, объясните мне ясно.

+3

Статические или динамические что? какой язык? Это конкретный вопрос кодирования или общее любопытство? Поскольку он стоит сейчас, ваш вопрос не отвечает. – Tommy

+0

Его общее любопытство –

ответ

0

Эти термины используются различными способами в зависимости от конкретного контекста. Но в целом, static относится к тому, что указано раньше, или жестко закодировано в программу, и его легко изменить. Динамический относится к тому, что предназначено для обновления на лету.

Например, в C, если вы объявляете массив, как:

int arr[100]; 

размер массива является статическим: это всегда 100 элементов. Даже если вы используете макрос, как это:

int arr[SIZE]; 

вы должны обновить определение макросов и перекомпилировать программу, чтобы изменить размер массива. Компилятор выделит фиксированный блок памяти для хранения массива; если это локальная переменная, она будет выделять память в фрейме стека функции, если это глобальная переменная, которая будет выделена при запуске программы в сегменте BSS (конкретные детали зависят от реализации, но это типичный способ).

С другой стороны, если вы используете:

int *arr = malloc(n * sizeof(int)); 

размера массива является динамическим - это зависит от текущего значения переменной n, которая может зависеть от программных входов и другого государства. Вы также можете использовать realloc(), чтобы изменить размер массива.

+0

как память выделяется в статическом и динамическом? –

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