Advertisement
Stoycho_KK

Untitled

Aug 10th, 2022
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3.  
  4. #pragma warning(disable : 4996)
  5.  
  6. void cpy(int* x) {
  7. std::cout << &x << std::endl;
  8. }
  9.  
  10. void ref(int*& x) {
  11. std::cout << &x << std::endl;
  12. }
  13.  
  14. void change(int* x) {
  15. *x = 10;
  16. }
  17.  
  18. int main() {
  19. int* example = new int;
  20. *example = 0;
  21.  
  22. std::cout << example << std::endl; // Указателя сочи към адрес на променлива. Това е той.
  23. std::cout << &example << std::endl; // Това е адреса на указателя. Той също е променлива и има адрес
  24.  
  25. // Подаваме го по копие и принтираме адреса на копието
  26. cpy(example);
  27. // Сега го подаваме като референция и пак принтираме адреса
  28. ref(example);
  29. // ред 4 и ред 2 са еднакви понеже подаваме самия указател. Ред 3 е различен понеже имаме копие.
  30.  
  31. // Това което не се променя е адреса към който указателя сочи.
  32. // Променя ли на едно място стойността на еxample тя се променя навсякъде
  33. change(example);
  34. std::cout << *example << std::endl;
  35.  
  36. delete example; // -> задължително
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement