C语言中一菜鸟问题。请大大们帮帮?
#include<stdio.h>intmain(){charstr[2];//这里2是什么意思?为什么我打2和8,结果都是一样的呢?gets(str);printf("...
#include <stdio.h>int main(){char str[2]; //这里2是什么意思?为什么我打2和8,结果都是一样的呢?
gets(str);printf("取到的字符串为:%s\n",str);str[2]这里是2.为什么我写2或是8,结果都是一样的呢?比如说写2时,超过2个字符了,下面输出结果照样输出超过部分的值。
那这限制字符容量的,不就没用了吗??限制不限制都显示出来
…麻烦各位前辈再看看。谢谢啦 展开
gets(str);printf("取到的字符串为:%s\n",str);str[2]这里是2.为什么我写2或是8,结果都是一样的呢?比如说写2时,超过2个字符了,下面输出结果照样输出超过部分的值。
那这限制字符容量的,不就没用了吗??限制不限制都显示出来
…麻烦各位前辈再看看。谢谢啦 展开
4个回答
展开全部
char str[2]; 这句是用来定义一个数组,数组可以存储的类型是字符型,长度是2
也就是说你运行这段程序的时候它可以保存你输入的两个字符
如果是8的话就是可以保存你输入的8个字符
也就是说你运行这段程序的时候它可以保存你输入的两个字符
如果是8的话就是可以保存你输入的8个字符
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c语言编译器不会执行越界检查的。另外,在传参的时候,gets只得到str数组的首地址,对它的长度一无所知,所以这方面的检查得由你自己来处理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2020-01-21
展开全部
str[2] 这里的2是str这个数组的容量是2个字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询