C 语言数组长度

计算string 长度:
思路:对于字符逐个数,直到'\o'结尾处;
计算string 长度:
对于字符逐个数,直到'\o'结尾处;
int stringLength(char* str){
    char *p;
    p=str;
    int i =0;
    for(i=0;*p != '\0';p++){
        i++;
        printf("%c",*p);
    }
    return i;
}

 

使用指针更方便:

 

int stringLength(char *str){

      char *p = str;

      while( *p != '\0')

             p++;

      return p - str;

 

计算数组长度:
在代码块中计算局部变量 charArray[] 长度:
思路: 计算 charArry[] 所占内存字节,除与单个元素所占字节:得出一共有多少个元素,即数组长度。

char charArray[] = {'y','u','e','k','i','n','g'};

int charLength = sizeof(charArray) / sizeof(*charArray);

 

以上对局部变量数组进行计算是可以的

但是如果对函数参数进行计算就会出现 一下问题代码:

/**
 * 这个是个错误的函数
 * @param ai 传入函数时是一个 指向 ai 的指针变量,而不是ai数组常量
 * @return int len = sizeof(ai) / sizeof(&ai);
 */
int intArrayLength(int ai[]){
    //引起错误的原因是因为
    //int ar[] 被传入参数时,实际上传入的是个 指向ai数组的一个int类型 指针变量int *ai
    //而不是数组常量 int ai[]本身,所以 sizeof(ai) 计算的是int类型指针 int *ai 所占内存。
    int len = sizeof(ai) / sizeof(*ai);
    return len;
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值