c语言函数strlen和关键字sizeof区别

int main()
{
    #ifdef BEGIN
    printf("ifdef endif");
    freopen("poj.txt","r",stdin);
    #endif // BEGIN
    char arrInt[10]={' ',' '};
    double *arrIntP[20];
    double arrDouble[20];
    char charArr[20];
    printf("arrInt:sizeofp:%d strlen:%d\n",sizeof(arrInt),strlen(arrInt));
    printf("arrIntP:sizeofp:%d arrDouble:sizeofp%d\n",sizeof(arrIntP),sizeof(arrDouble));
    printf("charArr:sizeof:%d \n",sizeof(charArr));
    //printf(":%lf",pow(2,62));
    return 0;
}

测试结果:

说明:head:#include <string.h> 

function:size_t strlen (const char *s);//必须为不可变的字符串和整形、浮点数计算没有关系 函数说明:

strlen()用来计算指定的字符串s 的长度,不包括结束字符"\0"。 返回值:返回字符串s 的字符数

而sizeof是计算某变量所最大可拥有的存储空间,用于防治越界或者是超过最大范围


Sizeof() (sizeof运算符)from

描述

sizeof操作符返回一个变量类型的字节数,或者该数在数组中占有的字节数。
语法

sizeof(variable)

参数

  • variable: 任何变量类型或数组(如int,float,byte)

示例代码

sizeof操作符用来处理数组非常有效,它能很方便的改变数组的大小而不用破坏程序的其他部分。

这个程序一次打印出一个字符串文本的字符。尝试改变一下字符串。

char myStr[] = "this is a test";
int i;
 
void setup(){
  Serial.begin(9600);
}
 
{0}void{/0}{1} {/1}{2}loop{/2}{1}() {{/1}
  for (i = 0; i < sizeof(myStr) - 1; i++){
    Serial.print(i, DEC);
    Serial.print(" = ");
    Serial.println(myStr[i], BYTE);
  }
}

请注意sizeof返回字节数总数。因此,较大的变量类型,如整数,for循环看起来应该像这样。

for (i = 0; i < (sizeof(myInts)/sizeof(int)) - 1; i++) {//此处为其真正用途
  //用myInts[i]来做些事
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值