因为我很困惑ch中存储的内容。它是 ascii值还是' ,因为有些网站说它存储了ascii,有些网站说它的商店' z'。 链接说答案是' z' :http://cprogrammingworld4u.blogspot.in/2011/07/chapter-1-getting-started.html
链接说答案是ascii:https://www.careercup.com/question?id=12511679
答案 0 :(得分:10)
在C中,'z'
是int
类型的常量,其值为122
(假设您使用的是ASCII机器,您可能就是这样)。你的两个消息来源都是一致的 - 它们是一样的。
例如,只需将您所关注的所有不同方式打印出来即可。示例程序:
#include <stdio.h>
int main(void)
{
char ch = 'z';
char i = 122;
printf("%c %d\n", ch, ch);
printf("%c %d\n", i, i);
return 0;
}
运行它:
$ make example && ./example
z 122
z 122
答案 1 :(得分:0)
答案是......两个!这是一个可以帮助您更好地理解的片段:
import graph_tool.all as gt
G = gt.load_graph("G.gt")
gt.graph_draw(G, vertex_text=G.vertex_properties.word, vertex_font_size=10, output_size=(1000, 1000), output="G.png", vertexsize=10)
当你认为ch为char时,它确实是'z',即存储。但是如果你将它转换为int,你将获得'z'的ASCII值,即122.
希望它会有所帮助。
答案 2 :(得分:0)
它“通常”存储ASCII值。
因此可以对char执行整数运算。 ASCII值用于将其映射到正确的ASCII字符。您甚至可以增加或减少它。
#include <stdio.h>
int main(void)
{
char ch = 90;
printf("%c\n\n", ch);
ch = 64;
for (int i = 0; i < 26; i++)
{
ch++;
printf("%c\n", ch);
}
}
for循环打印出A - Z.请注意我在每次迭代中如何将ch的值增加1。
如果您发现我已经分配了一个号码。我甚至可以指定它'z'。
从完整的初学者角度来看,您必须了解的是,所有内容都在内存中存储为“0”或“1”。这个不可读的0和1序列转换成你在屏幕上看到的文字(解码)。
答案 3 :(得分:0)
'Z'
我们一个角色常数。它的类型是int
。当你使用
char c = 'Z';
存储在c
中的整数值可能因编译器使用的字符编码而不同。如果它使用ASCII编码,那么它将'Z'
中的c
的ASCII表示存储在90
中,即'Z'
十进制。如果它使用EBCDIC编码,那么它会将c
的EBCDIC表示存储在233
中,即c
十进制。
为了编写可移植程序,您必须忽略'9' - '0'
中存储的整数值。对于这两种编码,您可以指望的某些事情是:
9
等于'Z' - 'A'
'z' - 'a'
等于self.presentingViewController.dismissViewControllerAnimated (true) {}
我不知道上述情况不适用的其他编码。