【发布时间】:2012-10-30 03:00:58
【问题描述】:
我发现了类似的问题,但我认为它们不适用于我的具体问题,如果有,我很抱歉!
我作为 CS 一年级学生正在学习 C,并尝试用 C 进行测验,但我无处可去,因为每次我尝试编译以查看它是否正常工作时,我都会收到消息“警告:初始化从整数生成指针而不进行强制转换。”
我已经解决了所有的语法错误(我认为),但我这辈子都想不通。我已经浏览了我所有的演讲幻灯片,但没有一篇涉及到这一点。
#include <stdio.h>
#include <scc110.h>
int player1score, player2score;
char* answer1, answer11, answer111, answer2, answer22, answer222;
int geography()
{
printf ("The first category is geography. Note: Player 1 always goes first.\n");
char* answer1 = AskForStringAndWait("Player 1: What is the capital of India?");
if (strcmp(answer1,"New Delhi")==0)
player1score++;
char* answer2 = AskForStringAndWait("Player 2: What is the capital of Iran?");
if (strcmp(answer2,"Tehran")==0)
player2score++;
char* answer11 = AskForStringAndWait("Player 1: Name a country that borders France that isn't Germany, Italy or Spain.");
if (strcmp(answer11,"Luzembourgh")==0 ||
strcmp(answer11,"Switzerland")==0 ||
strcmp(answer11,"Belgium")==0)
player1score++;
char* answer22 = AskForStringAndWait("Player 2: Name one of the main British Channel Islands.");
if (strcmp(answer22,"Guernsey")==0 ||
strcmp(answer22,"Jersey")==0)
player2score++;
}
【问题讨论】:
-
使用前需要先声明函数
-
而在你的全局声明中,只有
answer1是char*,其他都是普通的char。 -
请注意,您的全局变量
answer1等在函数geography()中被局部变量所遮蔽。这常常导致混乱。在这种情况下,摆脱全局变量。
标签: c compiler-warnings