Я хочу знать разницу четких разностей между статическими и динамическими в C#. Я видел много сообщений в разных блогах, но я не был удовлетворен их ответами.В чем разница между Static и Dynamic в структуре данных
Пожалуйста, объясните мне ясно.
Я хочу знать разницу четких разностей между статическими и динамическими в C#. Я видел много сообщений в разных блогах, но я не был удовлетворен их ответами.В чем разница между Static и Dynamic в структуре данных
Пожалуйста, объясните мне ясно.
Эти термины используются различными способами в зависимости от конкретного контекста. Но в целом, static относится к тому, что указано раньше, или жестко закодировано в программу, и его легко изменить. Динамический относится к тому, что предназначено для обновления на лету.
Например, в C, если вы объявляете массив, как:
int arr[100];
размер массива является статическим: это всегда 100 элементов. Даже если вы используете макрос, как это:
int arr[SIZE];
вы должны обновить определение макросов и перекомпилировать программу, чтобы изменить размер массива. Компилятор выделит фиксированный блок памяти для хранения массива; если это локальная переменная, она будет выделять память в фрейме стека функции, если это глобальная переменная, которая будет выделена при запуске программы в сегменте BSS (конкретные детали зависят от реализации, но это типичный способ).
С другой стороны, если вы используете:
int *arr = malloc(n * sizeof(int));
размера массива является динамическим - это зависит от текущего значения переменной n
, которая может зависеть от программных входов и другого государства. Вы также можете использовать realloc()
, чтобы изменить размер массива.
как память выделяется в статическом и динамическом? –
Статические или динамические что? какой язык? Это конкретный вопрос кодирования или общее любопытство? Поскольку он стоит сейчас, ваш вопрос не отвечает. – Tommy
Его общее любопытство –