【发布时间】:2015-11-25 02:10:24
【问题描述】:
我正在尝试编写一个程序来使用指针比较数组元素并给我一些结果;我制作这个简单的程序只是为了测试它是否有效,但我不知道为什么......如果我输入等于数字,没有任何事情发生。所以数组的第一个变量是 ptr 所以 ptr + 1 表示下一个元素,如果我直接输入 ch[0] == ch[1] 它可以工作。之后我想让程序比较字符是否相同。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int ch[2];
int *ptr = &ch;
scanf("%d%d", &ch[0], &ch[1]);
printf("Numbers to compare %d and %d", *ptr, *ptr + 1);
if (*ptr == *ptr + 1){
printf("Equals numbers\n");
}
return 0;
}
【问题讨论】:
-
*ptr + 1应该是*(ptr + 1)和ptr=&ch;应该是ptr=ch; -
* 在 + 运算符之前应用解引用运算符。