小编wuy*_*bao的帖子

K&R中的位计数功能

在K&R的"C编程语言"一书中,有一个位计数功能:

int bitsCount(unsigned x)
{
    int b;
    for (b = 0; x != 0; x >>= 1)
        if (x & 01)
            b++;
    return b;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么他们使用x&01而不是x&1x&00000001?是不是01表示八进制1?

c bit-manipulation bit

7
推荐指数
1
解决办法
924
查看次数

带有和没有指针的C中的字符串副本

有两个版本的字符串复制函数用C编写.我的问题是为什么版本1需要"!='\ 0'"但版本2不需要.如果我使用版本2复制字符0,"0"将终止应对过程怎么办?

void version1(char to[], char from[])
{
    int i;

    i = 0;
    while ((to[i] = from[i]) != '\0')
        ++i;
}

char *version2(char *dest, const char *src)
{
    char *addr = dest;
    while (*dest++ = *src++);
    return addr;
}
Run Code Online (Sandbox Code Playgroud)

另外,为什么像"1230456"这样的输入不会终止复制,因为'0'出现在字符串的中间?

c string pointers copy

2
推荐指数
1
解决办法
581
查看次数

标签 统计

c ×2

bit ×1

bit-manipulation ×1

copy ×1

pointers ×1

string ×1