LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1210|回复: 1

关于整形传字符串的函数

[复制链接]
发表于 2010-2-24 02:20:29 | 显示全部楼层 |阅读模式
char* itoa(int val, int base){
       
        static char buf[32] = {0};
       
        int i = 30;
       
        for(; val && i ; --i, val /= base)
       
                buf = "0123456789abcdef"[val % base];
       
        return &buf[i+1];
       
}

  1. buf[i] = "0123456789abcdef"[val % base];
复制代码

这句没看太明白谁能解释一下?
发表于 2010-2-24 08:59:14 | 显示全部楼层
Post by TangSDX;2071322
char* itoa(int val, int base){
       
        static char buf[32] = {0};
       
        int i = 30;
       
        for(; val && i ; --i, val /= base)
       
                buf = "0123456789abcdef"[val % base];
       
        return &buf[i+1];
       
}
  1. buf[i] = "0123456789abcdef"[val % base];
复制代码
这句没看太明白谁能解释一下?
是算法没明白还是"0123456789abcdef"[4]这种用法没明白?如果是用法,就是把“0123456789abcdef“视为char[]型数组,那下标4自然指的就是数组第5个字符(即字符'4')。
就把"0123456789abcdef"想成char a[] = "0123456789abcdef"。然后 "0123456789abcdef"[4]当成a[4],这样就好理解了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表