二C++数组Array可以在堆(heap)上创建一个数组 int* another = new int[5]; //其作用域与在栈上创建不同,直到程序把它销毁之前,它都是处于活动状态的,需要用delete关键字来删除 delete[] another; 使用new动态分配最大的原因是生存期,用new来分配的内存,它将一直存在,直到手动删除它。如果你有一个函数返回一个数组,你必须使用一个new关键字来分配它,除非你传入一个数组的地址参数。在堆上创建数组,该数组指针所指的内容为一个地址,这个地址指向数组的第一个元素。所以,应该在栈上创建数组来避免这种情况,因为像这样在内存中跳跃肯定会影响性能另外,在栈上创建的数组可以用sizeof获得其大小,而在堆上创建的数组无法直接获得其大小,因为它只是一个地址,所以我们需要在创建数组时记录其大小 > C++11中有内置数据结构std::array,相较于原始数组有很多优点,例如边界检查,记录数组大小 include< array >std::array< int, 5 > another; ## **14.C++字符串*
一1.指针内容在C中已经熟悉指针本身为一个代表地址的整数指针的*运算符通常被称为dereference运算符,可逆引用指针。2.引用引用必须引用已经存在的变量,其本身不是变量也不占用内存,相当于变量的别名使用 int& 类此的形式声明引用变量其作用为向函数传递变量,而不是只传递值,这使得函数可以直接对变量进行操作。可以达到与使用指针相似的效果,但比使用直至简单。 例如用指针实现#include<iostream> void Increment(int* value) { (*value)++; } int main(){ int a = 5; Increment(&a); std::cout<<a<<std::endl; std::cin.get(); }引用实现#include<iostream> void Increment(int& value) { value++; } int main(){ int a = 5; Increment(a);
测试
asdas
admin