4、new操作符.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. //C++中利用new操作符在堆区开辟数据
  2. //堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符 delete
  3. //语法 :new 数据类型
  4. //利用new创建的数据,会返回该数据对应的类型的指针
  5. //实例 1、:基本语法
  6. #include <iostream>
  7. //1、new的基本语法
  8. int* func()
  9. {
  10. //在堆区创建整形数据
  11. //new反回的是 该数据类型的指针
  12. int * p = new int(10);
  13. return p;
  14. }
  15. void test01()
  16. {
  17. int* p = func();
  18. std::cout << *p << std::endl;
  19. std::cout << *p << std::endl;
  20. std::cout << *p << std::endl;
  21. //堆区的数据 由程序员开辟,程序员管理释放
  22. //如果想释放堆区的数据,利用关键字 delete
  23. delete p;
  24. //std::cout << *p << std::endl; //内存已经被释放 再次访问就是非法操作
  25. }
  26. //2、在堆区利用new开辟数组
  27. void test02()
  28. {
  29. //创建10个整形的数组,在堆区
  30. int* arr = new int[10]; //10代表数组有十个元素
  31. for (int i = 0; i < 10; i++)
  32. {
  33. arr[i] = i + 100; //给10个元素赋值 100 ~109
  34. }
  35. for (int i = 0; i < 10; i++)
  36. {
  37. std::cout << arr[i] << std::endl;
  38. }
  39. //释放堆区数组
  40. //释放堆区数组的时候 要加 [] 才可以
  41. delete[] arr;
  42. }
  43. int main()
  44. {
  45. test01();
  46. test02();
  47. system("pause");
  48. return 0;
  49. }