注册 登录
编程论坛 C++教室

一个简单的变量的问题!!!

bid2938692 发布于 2009-11-17 14:08, 568 次点击
#include "stdio.h"
#include "conio.h"
int main()
{
     char s[10];
     int i;
     gets(s);
     for(i=0;s[i];i++)
     {     if(s[i]>='A'&&s[i]<='Z')
             s[i]=2*'A'-s[i]+25;
         else if(s[i]>='a'&&s[i]<='z')
               s[i]=2*'a'-s[i]+25;
     }
     puts(s);
     getch();
     return 0;
}
上述的s[10]只定义了10个变量
但是我输了20个变量都没有提示错误或溢出这是怎么回事呢???
实在是不明白,一般不是没有定义的变量都会提示错误
5 回复
#2
flyingcloude2009-11-17 18:42
gets不会理会数组的大小
#3
bid29386922009-11-17 19:11
那定义数组s[100]有什么意义或有什么含义呢?
#4
逆光2009-11-18 20:26
int a[10];int a;
若数组中你输入11个数,那第十一个数占用a所占内存
#5
逆光2009-11-18 20:34

#include<iostream>
using namespace std;
void main(){
    int a[3];
   int b=6;
   int i;
   for( i=0;i<4;i++){
       a[i]=i+1;
   }

    for(i=0;i<3;i++){
        cout<<a[i]<<endl;
   }
   cout<<b;
}
输出的是
1
2
3
6
而不是1234
#6
逆光2009-11-18 20:45
刚才说错了。应该是
#include<iostream>
using namespace std;
void main(){
    int a[3];
   int b[3];
   b[3]=3;
cout<<b[3]<<endl;
cout<<a[0]<<endl;
}
输出
3
3
也就是b[3]占用了a[0]的内存
1