你不需要任何特殊的函数,只需要使用一个格式说明符在打印时将其以整数形式显示出来即可。

(图片来源网络,侵删)
使用 printf 函数(最常用)
这是最直接、最常用的方法,通过在 printf 函数中使用 %d 或 %c 格式说明符,可以轻松地在字符和其ASCII码之间切换。
示例代码
#include <stdio.h>
int main() {
// 定义一个字符变量
char ch1 = 'A';
char ch2 = 'a';
char ch3 = '0'; // 数字字符0
char ch4 = '$'; // 特殊符号
char ch5 = '\n'; // 转义字符,换行符
// 打印字符及其对应的ASCII码
// %c 用于打印字符本身
// %d 用于打印其对应的ASCII码(整数)
printf("字符: %c, ASCII码: %d\n", ch1, ch1);
printf("字符: %c, ASCII码: %d\n", ch2, ch2);
printf("字符: %c, ASCII码: %d\n", ch3, ch3);
printf("字符: %c, ASCII码: %d\n", ch4, ch4);
// 即使是转义字符也有ASCII码
printf("字符: \\n (换行符), ASCII码: %d\n", ch5);
return 0;
}
输出结果
字符: A, ASCII码: 65
字符: a, ASCII码: 97
字符: 0, ASCII码: 48
字符: $, ASCII码: 36
字符: \n (换行符), ASCII码: 10
代码解释
char ch1 = 'A';:我们定义了一个名为ch1的char类型的变量,并赋值为字符'A'。printf("字符: %c, ASCII码: %d\n", ch1, ch1);:这是关键的一行。- 第一个
%c:告诉printf将ch1作为字符来打印,所以它会显示A。 - 第二个
%d:告诉printf将ch1作为整数来打印,因为ch1内部存储的值就是65('A'的ASCII码),所以它会显示65。 - 注意,这里我们两次使用了变量
ch1,一次用于字符格式,一次用于整数格式。
- 第一个
显式类型转换
虽然方法一已经足够,但如果你想在逻辑上更明确地表示“转换”,可以使用强制类型转换(Type Casting),这会将 char 类型的值直接提升为 int 类型。
示例代码
#include <stdio.h>
int main() {
char ch = 'Z';
int ascii_value;
// 使用强制类型转换将 char 转换为 int
ascii_value = (int)ch;
printf("字符: %c\n", ch);
printf("通过转换得到的ASCII码: %d\n", ascii_value);
// 你也可以直接在printf中进行转换
printf("在printf中直接转换: %d\n", (int)ch);
return 0;
}
输出结果
字符: Z
通过转换得到的ASCII码: 90
在printf中直接转换: 90
代码解释
ascii_value = (int)ch;:这行代码显式地将ch的值('Z'的ASCII码90)从char类型转换为int类型,并赋值给ascii_value变量,虽然在这个简单例子中,char到int的转换是隐式发生的,但使用强制类型转换可以让代码意图更清晰。
通过查表方式(不推荐,但有助于理解)
你可以自己创建一个ASCII码表,然后通过查找的方式得到对应的码值,这种方法在实际编程中非常繁琐且不必要,但它能帮助你理解字符和码值之间的对应关系。
示例代码
#include <stdio.h>
int main() {
char ch = '5';
int ascii_value;
// 一个简单的ASCII码查找逻辑(仅作演示)
if (ch >= '0' && ch <= '9') {
// 数字字符的ASCII码是 '0'的码值 + (字符 - '0')
// '0'的ASCII码是48
ascii_value = 48 + (ch - '0');
} else if (ch >= 'A' && ch <= 'Z') {
// 大写字母
ascii_value = 65 + (ch - 'A');
} else if (ch >= 'a' && ch <= 'z') {
// 小写字母
ascii_value = 97 + (ch - 'a');
} else {
ascii_value = -1; // 表示未知字符
}
if (ascii_value != -1) {
printf("字符: %c, 通过查表得到的ASCII码: %d\n", ch, ascii_value);
} else {
printf("未知字符: %c\n", ch);
}
return 0;
}
输出结果
字符: 5, 通过查表得到的ASCII码: 53
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
printf 格式化 |
最简单、最直接、最常用 | 逻辑上不够“显式” | 绝大多数情况下,当你需要打印字符和其ASCII码时。 |
| 强制类型转换 | 代码意图清晰,符合“转换”的字面意思 | 多此一举,因为C语言会自动处理 | 在需要将 char 存入 int 变量或进行复杂运算时,有助于代码可读性。 |
| 查表法 | 有助于理解ASCII编码原理 | 代码冗长、效率低、易出错 | 仅用于学习和理解,绝对不要在实际项目中使用。 |
在C语言编程中,直接使用 printf 函数的 %d 格式说明符是转换字符为ASCII码的标准和最佳实践。char 本质上就是整数,这个概念是C语言的基础之一。

(图片来源网络,侵删)
