函数putc的使用 我正在编写一个C程序,我没有编写它,并将它与我的C++代码集成。这个C程序有一个字符数组,并使用putc函数来打印它的内容。像这样: printf("%c\n","01"[b[i]]);
这是一个位数组,可以有ASCII 0或ASCII 1(请注意,不是ASCII 48和49)。此命令可完美打印“0”和“1”。但是,我不理解putc命令中“01”的用法。我还可以打印如下内容:函数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
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”]
使其更加混乱。。。