#include <iostream> #include <algorithm> int main(int argc,char** argv) { //如果有参数,那么将他们显示出来 if(argc >1) { int i ; for(i =1;i< argc -1;++i) //输出除了最后一个以外的所有参数 { //参数间用空格隔开 std::cout << argv[i] << " "; //argv[i]是一个字符指针 char* } std::cout << argv[i] << std::endl; //输出最后一个参数,参数后面没有空格 } const size_t NDim = 3; //数组大小 double coords[NDim]; *coords = 1.5; delete[] coords; //删除数组指针 return 0; } //三种内存分配方法 //@1静态分配内存 int* pointer_to_static() { static int x; return &x; } //@2 动态分配内存 new delete int* pointer_to_dynamic() { //为一个int类型的对象动态分配内存,对它进行初始化并返回一个指向该对象的指针 return new int(0); } char* duplicate_chars(const char* p) { //分配足够的内存空间,记住要为空字符预留空间 size_t length = strlen(p)+1; char* result = new char[length]; //复制进新分配的内存空间并返回指向首元素的指针 std::copy(p,p+length,result); return result; } //指针是一个随机存储的迭代器 //static 定义数组,告诉编译器只要执行一次初始化, 如果不加,编译器在每次执行时都对数组进行初始化,减慢城市执行速度. //sizeof()返回类型为size_t的数组个数,sizeof(*numbers)表示每个元素所占内存的大小 //int main(int argc ,**char argv) argv是一个指针数组首元素地址的指针,argc是argv所指的数组的指针个数,至少是1 //数组不包含任何元素,new函数一个有效但无意义的off-the-end指针,可以把它作为delete[]的参数使用