C++指针探索(二)

与字符相关的指针

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.

发布了5 篇原创文章 · 获赞 0 · 访问量 215

猜你喜欢

转载自blog.csdn.net/m0_46412866/article/details/104709872