none
error C4700: uninitialized local variable 'ch1' used RRS feed

  • 问题

  • #include<string.h>
    #include<stdlib.h>
    #include<stdio.h>
    #include<iostream>
    #include"Stack.h"
    #include"Queue.h"
    using namespace std;
    typedef char SElemType;
    typedef char QElemType;
    void  main(){
    char ch1, ch2, str;
    int flag = 1;
    Stack S;  InitStack(S);
    Queue Q;  InitQueue(Q);
    cout << "请输入你要测试的字符串:" << endl; cin >> str;
    Push(S, '#');
    str = getchar();
    while (str != '#'){
    Push(S, str); EnQueue(Q, str); str = getchar();
    }
    Pop(S, ch1); DeQueue(Q, ch2);
    while (ch1 != '#'){
    if (ch1 == ch2)flag = 1;
    else{
    flag = 0; break;
    }
    Pop(S, ch1); DeQueue(Q, ch2);
    }
    if (flag == 1)
    cout << "该字符串是回文!"<< endl;
    if (flag == 0) cout << "该字符串不是回文!" << endl;


    };

    为什么总是提示说ch1和ch2没有初始化?

    2015年4月23日 20:12

答案

  • 您的代码中定义了变量,但是没有给变量赋初始值。

    修改成这样 char ch1 = '\0', ch2 =  '\0', str =  '\0';


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    • 已标记为答案 Shu 2017 2015年5月11日 1:35
    2015年4月24日 7:25
    版主

全部回复

  • 您的代码中定义了变量,但是没有给变量赋初始值。

    修改成这样 char ch1 = '\0', ch2 =  '\0', str =  '\0';


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    • 已标记为答案 Shu 2017 2015年5月11日 1:35
    2015年4月24日 7:25
    版主
  • 您的代码中定义了变量,但是没有给变量赋初始值。

    修改成这样 char ch1 = '\0', ch2 =  '\0', str =  '\0';


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    谢谢
    2015年4月25日 11:12