与字符相关的指针
char* p = "csdn"; //指向字符串常量的指针
std::cout<<p;// 输出:csdn 1
std::cout<<*p;//输出:c 2
std::cout<<&p;//输出:p的内存地址 3
1表示输出从指针内的地址值开始输出字符串,遇到’\0’即停止,若未找到‘\0’则会输出乱码或者报错。2表示输出p指向的地址中存储的值,*号表示解引用,即只输出首地址的值。3表示输出p指针本身在内存中的地址,&表示引用。
char a[]={'c','s','d','n'};//字符数组
char a1[]="csdn";//a1同上p指针
char a2[][5]={{'c','s','d','n'},"c++"};//二维字符数组指针,必须指定横轴大小
char* a3[]={"csdn","c++"};//字符串常量指针数组
std::cout<<sizeof(a); // 输出:4 1
std::cout<<sizeof(a1);// 输出:5 2
std::cout<<sizeof(a2);// 输出:10 3
std::cout<<sizeof(a3);// 输出:8 4
1表示a为字符数组,共四个字符所以大小为4。2表示a1指向的为字符串除了可见的字符还有一个’\0’,故大小为5。3的10为2*5,每一横轴都分配了5B;4表示a3中存储的是指针,而指针大小在上节中讨论过为固定大小与指向的数据类型无关,两个指针每个指针大小为4,故输出8.