micheal1 发表于 2017-9-4 10:17:07

我想打印第一个大写字母为什么变成了'['

        int i;
        //int a = 'A';
        char zimuc = {'A','B'};
        int zimui = {65};

        for(i=0;i<26;i++)
        {
                zimuc = zimuc + 1;
        }
        for(i=0;i<26;i++)
        {
                zimui = zimui + 1;
        }
       
        printf("%c",zimuc);
这是源码,我实在是想不通。顺便问一下为什么我用vc++打开一个文件就报c000005错误,但是我其他的使用又一切正常

weizhongyang 发表于 2017-9-26 11:26:22

程序结果应该是大写的B,用的是ubuntu下的gcc编译器

c000005文件报错应该是文件的兼容性问题,可以上网查下怎么解决,有答案的

world.com 发表于 2017-9-26 14:08:24


#include "stdafx.h"
#include <stdlib.h>

int main()
{

        int i;
        char zimuc = { 'A','B' };
//         int zimui = { 65 };
//
//         for (i = 0; i < 26; i++)
//         {
//                 zimuc = zimuc + 1;       //n +1是二维数组的第i个元素,而你定义的zimuc是一维数组,所以会造成越界问题所以会中断
//         }
//         for (i = 0; i < 26; i++)
//         {
//                 zimui = zimui + 1;
//         }                                                         //注释这一段对于打印数组里面的大写字母并没有什么影响,在VS 里面试了

        printf("%c", zimuc);

        system("pause");
        return 0;
}

浅笑灬丨 发表于 2017-9-26 21:31:51

数组是从zimuc开始往后排的,zimuc=A,zimuc=B

micheal1 发表于 2017-12-11 09:15:08

好奇怪,我后来又编译一次发现又和我想要的答案一样了
页: [1]
查看完整版本: 我想打印第一个大写字母为什么变成了'['