C++编程,求指导! 编写一个left()函数,它将字符串和n作为参数,并返回该字符串的前n个字符(n默认值为1),另外编写一个left()重载函数,它将无符号整数和n作为参数,并返回无符号整数的前n位(n的默认值为1) 。
char *a=new char[n+1];
请问这个是什么意思?
就是先声明一个char型指针,再为它分配一个n+1个char大小(一个字节乘以(n+1))的空间来储存需要的前n个字符,申请n+1个空间是为了把最后一个位置写入'\0',字符串以'\0'结尾,用它标志一个字符串的结束。
new 关键字是为程序在堆上分配空间(堆上分配的不会因为这个函数结束而消失),删除这个空间用delete,或delete[],用哪个看分配的是一个还是一组(一个数组),比如这个就要用delete[] a; java等一些语言有自己的垃圾收集机制,不需要自己释放空间。