Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的堆栈括号匹配_C_Data Structures - Fatal编程技术网

C语言中的堆栈括号匹配

C语言中的堆栈括号匹配,c,data-structures,C,Data Structures,当我执行此代码并调试时,当我输入两个括号时,我看到op1和op2值之间的“h”。我不知道它是从哪里来的。你能帮我解决这个问题吗?它是关于没有指针的数据结构。我不知道这个垃圾值是从哪里来的 问题: op = pop(); printf("op1: %ch\n", op); //() = h op2 = ch; printf("op2: %ch\n", op2); 下面的链接有完整的代码。 字符的格式说明符是%c。正在打印您添加的额外h如果op和op2

当我执行此代码并调试时,当我输入两个括号时,我看到
op1
op2
值之间的“h”。我不知道它是从哪里来的。你能帮我解决这个问题吗?它是关于没有指针的数据结构。我不知道这个垃圾值是从哪里来的

问题:

op = pop();
printf("op1: %ch\n", op); //() = h
op2 = ch;
printf("op2: %ch\n", op2);   
下面的链接有完整的代码。

字符的格式说明符是%c。正在打印您添加的额外h

如果
op
op2
具有类型
short int int
,则正确的代码为:

op = pop();
printf("op1: %hc\n", op);
op2 = ch;
printf("op2: %hc\n", op2);
由于类型实际上是char,您甚至可以编写:

op = pop();
printf("op1: %hhc\n", op);
op2 = ch;
printf("op2: %hhc\n", op2);

但是您可以使用
%c
作为
short
char
值,当传递给变量函数时,例如
printf()

如果我将char转换为int,我可以在堆栈中获得paradensis吗?您可以将paradensis作为int或char存储在堆栈中。char作为其ASCII等效项存储在内部。仅为了将其显示为括号,您应该将其显示为字符,这可能会混淆
%hc
%ch
。。。只需卸下
h