函数putc的使用 我正在编写一个C程序,我没有编写它,并将它与我的C++代码集成。这个C程序有一个字符数组,并使用putc函数来打印它的内容。像这样: printf("%c\n","01"[b[i]]);

函数putc的使用 我正在编写一个C程序,我没有编写它,并将它与我的C++代码集成。这个C程序有一个字符数组,并使用putc函数来打印它的内容。像这样: printf("%c\n","01"[b[i]]);,c,C,这是一个位数组,可以有ASCII 0或ASCII 1(请注意,不是ASCII 48和49)。此命令可完美打印“0”和“1”。但是,我不理解putc命令中“01”的用法。我还可以打印如下内容: printf("%d\n",b[i]); 所以我只是好奇。谢谢 新手这个“01”是一个字符串文本,无论出于何种目的,它都是一个数组。看起来有点奇怪。。。你可以写: char *characters = "01"; printf("%c\n", characters[b[i]]); 或者更好: c

这是一个位数组,可以有ASCII 0或ASCII 1(请注意,不是ASCII 48和49)。此命令可完美打印“0”和“1”。但是,我不理解putc命令中“01”的用法。我还可以打印如下内容:

    printf("%d\n",b[i]);
所以我只是好奇。谢谢

新手这个
“01”
是一个字符串文本,无论出于何种目的,它都是一个数组。看起来有点奇怪。。。你可以写:

char *characters = "01";
printf("%c\n", characters[b[i]]);
或者更好:

char *characters = "01";
int bit = b[i];
printf("%c\n", characters[bit]);
乍一看就更容易理解。

这个
“01”
是一个字符串文本,无论出于何种目的,它都是一个数组。看起来有点奇怪。。。你可以写:

char *characters = "01";
printf("%c\n", characters[b[i]]);
或者更好:

char *characters = "01";
int bit = b[i];
printf("%c\n", characters[bit]);

乍一看就更容易理解。

这是一种令人讨厌的工作方式,但写这篇文章的人使用了b的内容作为对字符串“01”的数组解引用:


但这是另一种犯罪行为

这是一种令人讨厌的工作方式,但写这篇文章的人使用b的内容作为对字符串“01”的数组解引用:

但这是另一种犯罪行为

字符串“01”被转换到字符数组中(这是C中的字符串),而b[i]指定0或1,因此它的“分解”视图将是

"01"[0]

它将从字符数组“string”中选择“right”字符。请注意,由于字符串是指向字符的指针这一定义,因此这仅适用于C。因此,[…]操作成为一个内存偏移操作,其大小等于指针类型的一项(在本例中为一个字符)的大小

是的,您的printf会好得多,因为它需要较少的模糊“c”技巧知识。

字符串“01”被转换到字符数组中(这是c中的字符串),而b[i]指定0或1,因此它的“分解”视图将是

"01"[0]

它将从字符数组“string”中选择“right”字符。请注意,由于字符串是指向字符的指针这一定义,因此这仅适用于C。因此,[…]操作成为一个内存偏移操作,其大小等于指针类型的一项(在本例中为一个字符)的大小


是的,您的printf会更好,因为它需要较少的关于晦涩的“c”技巧的知识。

这一行的意思是取字符数组
“01”
并引用数组元素。从b[i]位置获取该索引


因此,
“01”[0]
返回字符
0
“01”[1]
返回字符
1
这一行表示获取字符数组
“01”
,并引用数组元素。从b[i]位置获取该索引


因此,
“01”[0]
返回字符
0
“01”[1]
返回字符
1
执行您理解的语句

简化另一个,用索引替换
b[i]
,我们得到

"01"[index]

字符串文本(
“01”
)的类型为
char[3]
。获取其索引
0
1
(或
2
)是可以的,并返回字符
'0'
'1'
(或
'\0'
)。

执行您理解的语句

简化另一个,用索引替换
b[i]
,我们得到

"01"[index]

字符串文本(
“01”
)的类型为
char[3]
。获取其索引
0
1
(或
2
)是可以的,并返回字符
'0'
'1'
(或
'\0'
)。

我不一定称后者为犯罪行为。在这种情况下(其中,
printf()
是一个可行的选择),那么可能。是的
'0'+b[i]
可能是最好的C方式。好的,现在我知道了。我想这不是一个简单的方法…谢谢大家的快速回复!我不一定认为后者是犯罪行为。在这种情况下(其中,
printf()
是一个可行的选择),那么可能。是的
'0'+b[i]
可能是最好的C方式。好的,现在我知道了。我想这不是一个简单的方法…谢谢大家的快速回复!或者你可以移动到黑暗面并将其更改为
b[i][“01”]
使其更加混乱…或者你可以移动到黑暗面并将其更改为
b[i][“01”]
使其更加混乱。。。