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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值