关于C语言字符数组和字符串的问题
是否这两者可以等同?如果可以等同的话那么字符数组中chara[10]里的10代表什么意义?这个程序中输入了超过10个元素而没有报错、是为什么...
是否这两者可以等同?
如果可以等同的话那么字符数组中char a[10]里的10代表什么意义?
这个程序中输入了超过10个元素而没有报错、是为什么 展开
如果可以等同的话那么字符数组中char a[10]里的10代表什么意义?
这个程序中输入了超过10个元素而没有报错、是为什么 展开
1个回答
展开全部
C语言中 没有字符串这个类型,所有的字符串都是字符数组(字符指针也等效于字符数组)
这里的10就是定义10个空间,明显你这个越界了
但是越界了不代表会出问题
就像你去宾馆,定了10个单人间,住进了20个人,实际上住了20间房间。
如果这多余的10个房间正好没人住,那就什么问题都不会有
如果有人住,但是只是普通人,你把他们赶出去,自己住也不会出什么问题,只不过后续如果找原本住的人就找不到了(访问溢出部分的空间值)
如果原本住的是大人物,比如一个公安局长什么的(系统关键内存),那程序就会挂掉了。
你这个应该是正好碰到第一种情况了。
这里的10就是定义10个空间,明显你这个越界了
但是越界了不代表会出问题
就像你去宾馆,定了10个单人间,住进了20个人,实际上住了20间房间。
如果这多余的10个房间正好没人住,那就什么问题都不会有
如果有人住,但是只是普通人,你把他们赶出去,自己住也不会出什么问题,只不过后续如果找原本住的人就找不到了(访问溢出部分的空间值)
如果原本住的是大人物,比如一个公安局长什么的(系统关键内存),那程序就会挂掉了。
你这个应该是正好碰到第一种情况了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询