指针类型
基本数据类型指针、数组指针、多级指针、指针数组
指针赋值方式:
- 相同类型变量的地址
- 相同类型的指针变量
- 数组名
- 字符串
- 函数名
字符串有自己独立的内存空间.
//把字符串中每一个字符拷贝给数组的每一个元素。字符串有自己独立内存,数组有自己的内存.
char c[10] = "abcd";
char c1[10] = "abcd";
//c[10] = "abcd";错误。数组越界,类型不匹配
//c = "abcd";错误。常量不能赋值
//把字符串的首地址初始化给字符指针.字符指针有自己独立的内存。
char *pc = "abcd";
pc = "abcd";
char *pc1 = "abcd";
cout << (c == c1) << endl;//0
//相同字符串内存地址相同
cout << (pc == pc1) << endl;//1
cout << (strlen(pc) == strlen(pc1)) << endl;
cout << pc << endl;//输出字符串(指针指向的字符串)
//获取字符串的第一个字符
cout << *pc << endl;
//获取指针变量自己的地址
cout << &pc << endl;
//获取字符串的首地址(强转为其他类型的指针)
cout << (void*)pc << endl;
char c2[10] = "abcd\0def";
int *pInt = (int*)c2;
pc = (char*)(pInt + 1);
cout << pc << endl;//空串
char *cpChar[4] = {
{ "abcd" },
{ "hello" },
{ "monster" },
{ "hero" }
};
char **ppchar = cpChar;
cout << *ppchar << endl;//abcd
cout << *++ppchar << endl;//hello
cout << ++ppchar[1] << endl;//onster