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"
Пытаюсь догадаться, из чего питонского это могло вырасти "Нет, мадам, я питона совсем не знаю"
Перемена прошла, яблоко не съедено, я огорчена - не получилось понять, откуда растут уши у непонимания. Это даже не проблема с языком Си...

П. считает, что это следствие злоупотребления гопчатами.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

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 10:15 am
Powered by Dreamwidth Studios