katyat: (Default)
[personal profile] katyat
Марна-Долина
Подходит девочка:
"Мадам , я не поняла, на прошлом занятии - зачем там нужны поинтеры?" О, конечно, я и про стек говорила и про копии переменных - но всегда рада, если просят.
Допустим, написано такое:

  1. void f(int a,int b, int c){

  2.   c = a+b;

  3.   return;}

  4. int main(){

  5.   int c = 7;

  6.   f(1,2,c);

  7.   printf("%d", c);

  8. .....}

Смотрим под дебагером, вошли в функцию f - у c значение то же, а адрес-то другой, она другая, она на стекфрейме  f и помрет при выходе.
"Но ведь c = a+b! "
Меняю код, Вот вам

  1. void f(int a,int b, int c){

  2.   c = 137;

  3.   return;}

"Нет, здесь я понимаю, c - это локальная переменная, но ведь в предыдущем примере c это не локальная переменная, а "a+b"
Пытаюсь догадаться, из чего питонского это могло вырасти "Нет, мадам, я питона совсем не знаю"
Перемена прошла, яблоко не съедено, я огорчена - не получилось понять, откуда растут уши у непонимания. Это даже не проблема с языком Си...

П. считает, что это следствие злоупотребления гопчатами.

Profile

katyat: (Default)
katyat

December 2025

S M T W T F S
 12 34 56
78 9 1011 1213
141516 17181920
21 2223 24 2526 27
28 29 30 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 31st, 2025 11:43 am
Powered by Dreamwidth Studios