获取char指针内容的长度

如果能确定所指变量为字符串地址,可以用strlen(p)取得字符串长度。

 

strlen能返回字符串的长度是因为它认为到'\0'就是结束的地方

sizeof和内存无关,只根据数据类型来判断,而数据类型的长度和操作系统有关

1

char* a = "c:\\temp\\a.txt\n";

int b = strlen(a);

 

2

char a[] = "hello world";

char *p  = a;

cout<< sizeof(a) << endl; // 12字节

cout<< sizeof(p) << endl; // 4字节

 

计算数组和指针的内存容量

 

void Func(char a[100])

{

cout<< sizeof(a) << endl; // 4字节而不是100字节

}

这里 数组退化为指针

 

 

3

char  buffer[100];

char* p = buffer ;

 

int bufsize = sizeof( buffer ) / sizeof( *p ) ;

可以看到,bufsize是100,得到了那个数组的大小。或者这些写更直观:

int bufsize = sizeof( buffer ) / sizeof( buffer[0] ) ;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值