c - 为什么这不打印字符而只打印整数?

标签 c

我正在尝试打印一个字符链接列表,然后创建一个函数将字符串复制到一个新字符串上,然后反转它并打印出来。我很困惑为什么这只打印出整数,以及如何反转字符串。这是我的代码:

 #include<stdlib.h>
 #include<stdio.h>

 struct list_el 
 {
 char val;
 struct list_el * next;
 };


typedef struct list_el item;


int main() 

{
 item * curr, * head;
 int i;

 head = NULL;

 for(i='i';i>='a';i--) 
 {


  curr = (item *)malloc(sizeof(item));
  curr->val = i;
  curr->next  = head;
  head = curr;
 }



 head = NULL;


 while(curr) 
 {
  printf("%d\n", curr->val);
  curr = curr->next ;
 }

 return 0; 
}

最佳答案

%d 仅根据定义打印数值。如果您想打印其他内容,请使用不同的格式字符串(例如%c)。

更好的是,根本不要使用 printf(),而是考虑使用更简单的东西(putc()?)

关于c - 为什么这不打印字符而只打印整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24666872/

相关文章:

c++ - 不同数据段的加载时间、遍历时间、内存使用情况C/C++

python - SWIG src 和共享 lib 文件的位置

c - 我应该在 Visual Studio 中投 void** 返回吗

c - 在 C 中对数组进行排序,返回排序后的索引

c - 温度传感器不工作

c - 当数组是另一个函数的形式参数时,函数参数中 typedef 常量大小数组的地址会导致指针类型不兼容

C - fscanf 适用于字符指针,但不适用于双字符指针?

c - 无法使用 mac os 不支持的体系结构编译简单的 c 代码

c - 我需要根据文件上有多少元素使用 X 结构,可以吗?

c - `double(double)` 和 `double (*)(double)` 有什么区别