pointer.py 377 B

12345678910111213141516171819202122232425262728293031323334
  1. a = 1
  2. assert a == 1
  3. assert *&a == 1
  4. b = &a
  5. *b = 2
  6. assert a == 2
  7. def swap(a,b):
  8. t = *a
  9. *a = *b
  10. *b = t
  11. def f():
  12. a,b = 5,6
  13. swap(&a,&b)
  14. assert a == 6
  15. assert b == 5
  16. f()
  17. a = [1, 2, 3]
  18. b = &a
  19. b->append(4)
  20. assert a == [1, 2, 3, 4]
  21. def add(a, b):
  22. return a+b
  23. p = &add
  24. assert p->__call__(1, 2) == 3
  25. fun = lambda :6
  26. p = &fun
  27. assert p->__call__() == 6