Мы можем сказать, что y
неизменен?
Мы можем, но мы были бы неправы :-)
Вы только должны немного поэкспериментировать, чтобы выяснить это. Простой y = 42
предположить, что y
были не неизменны, но есть еще некоторые сомнения в том, что она может быть создана значение нового и указала y
в том, что, оставив старое значение нетронутым.
Это может быть дисконтированным с кодом, как:
int y = 7; // we have a y
int *pY = &y; // and a pointer to it
y = 42; // change y
printf ("%d %d\n", y, *pY);
Вы увидите, что там оба методов, используемых для доступа y
получить новое значение, указывающее, что базовое значение самого y
изменился, а чем создание нового значения, и y
как-то перенаправлено на него.
Это не означает, что C сам по себе не имеет неизменяемые данные, вот что такое ключевое слово const
. Однако это совсем не похоже на концепцию неизменности Python.
Значение любой переменной в C может быть изменено, если не объявлено 'const'. – DyZ