1:在C++中,字符串字面值是常量,这就是为什么在声明中使用关键字const。例如
const char *bird = "wren";
2:一般来说,如果给cout一个提供一个指针,它将打印地址,但如果这个指针的类型是char *型的,则cout显示的是指针指向的字符串,如果要显示这种类型指针的地址,只能同强制转换符将其转化为整型,例如:
char *animal[20]="bear";
cout<<animal<<" at "<<(int *)animal<<endl;
此时输出结果是:fox at 0x0065fd30
3:strcpy()和strncpy()
char food[20]="carrots";
strcpy(food,"flan"); //作用是将flan复制到food后面,但是,这有个问题,如果flan是dsffsdfergsdfsdgwdsfgsef大于20的字符串,复制后就会覆盖food后面的内存,所以, //此时最好用strncpy()
strncpy(food,"adsadfwedfdsfewfddsfqfasfd",19); //这样只复制前19个字符
4:注意,string中的函数strcpy()和strcat()必须是char型的,例如,一下的就不被允许:
string first_name="wang";
string last_name="xiang";
strcat(first_name,last_name);
5:利用new来分配内存时,返回的是地址,所以用new创建的变量都指针,new的结构式
int * pt=new int;
struct array;
array *pt=new array; //注意,其实结构体就相当于创建了一个数据类型
int *pt-new int [size]; //注意,在使用时,是pt[3].sss;不在是->了
6:在结构体重如果声明了一个string变量,必须用std::string(在main函数中声明是不用)