两种情况是否都越界,情况有什么不同。末位是否为\0,怎样确保其为\0??
不手动添加\0,也可以吧~测试没有错误,就是puts之后……
追答你是说char s[6] = {’A’, 'B’, 'C’, 'D’, 'E’ ,'\0'};这个也不用自己手动添加??
追问恩呢 puts后没有出错
追答那看来也有系统默认赋值,就像int数组部分元素赋值时,剩余元素都初始化为0,看来字符数组应该是用结束符初始化的。
第一个和第二个有什么本质区别呢~不太理解耶
追答第一个有语法错。
char s[5] = {"ABCDE"};
//等价于
char s[5] = {‘A‘,'B','C','D','E','\0'}; //用6个常量去初始化5个元素,C语言语不允许,这也是与第二个的区别。
太谢谢哈 顿悟……不过我想把财富值给级别比较低的朋友,介意么
关于数组越界问题:char s[5] = {"ABCDE"}; char s[5] = {’A...
char s[6] = {"ABCDE"}; \/\/这个系统可以自动添加 char s[6] = {’A’, 'B’, 'C’, 'D’, 'E’ ,'\\0'}; \/\/这个需要自己手动添加。
char s〔5〕={"ABCDE"};为什么不能正确进行字符串赋值操作
语法错误了。char s(5)={"A","B","C","D","E"};我编程刚入门,呵呵,不知道对不对。你可以试下。
...C语言题目。 对字符窜的定义char str[5]="abcde"是正确的。_百度知...
所以字符串"abcde"长度是6 数组越界
C语言的字符数组中sizeof()操作符的计算问题,请帮忙进来看看!
char s[5] 是 5个字符,s[5] = '\\0'; 属于内存越界操作 sizeof不关心'\\0',它只跟变量定义有关,即使s里存储的都是'\\0',sizeof(s)还是5 "abcde"是个常量字符串,c的定义里自动给常量字符串加了结束符'\\0'.所以它相当于{ 'a', 'b', 'c', 'd', 'e', '\\0' } char c[...
...s[5]={'1','2','3','4','5'};和char s[5]={“12345”};有错吗...
char s[5]={'1','2','3','4','5'};是可以的,但 char s[5]={“12345”};则错了。因为存储字符串"12345"需要6个字节。(外加一个串结束符'\\0')
关于strlen
1."abcde"长度为5,但最后还有个字符串结束符,因此char a[5]是放不下的,应该用char a[6]= "abcde";char a[5]="abcde";会导致a的每个元素都不是结束符,紧接a之后的内存区域又不被初始化(C中初始化列表超过数组大小的行为是未定义行为,这里Dev-C++显然没有因为初始化而填充不在a中的...
C语言基本语法知识(十四)数组越界与内存溢出
一、数组越界:边界探索与潜在风险\/ C语言中的数组访问,就像一把钥匙,必须对准正确的锁孔。一个定义为n元素的数组,其合法索引范围是0到n-1。例如:int a[5] = {0}; \/\/ 0到4是安全区 尝试访问a[5],就像试图打开已经满员的邮箱,这就陷入了数组下标越界。编译器通常不会预警,但运行时可能...
C语言定义字符串数组元素时满了,没有给\/0的位置会怎么样?
char c[5] = { 'A', 'B', 'C', 'D','E'};这样写才可以。其次,不留0的位置,那么该数组的最后一个成员就是'E';只有你把它当成一个字符串使用的时候才可能发生问题。比如用它printf("%s", c)这样输出,因为后面没有0结束符,可能输出乱码或直接挂掉。不把它当字符串用的时候,它和...
关于char字符串的问题。 char arr[3]={'a','b','c'}; std::cout<<arr...
你的数组越界了 char arr[3]={'a','b','c'};字符数组最后必须多留一个给'\\0'标识数组结束。所以大小应该设定为4 char arr[4]={'a','b','c'};还有你如果是想输出数组的地址,就必须传给他地址值,std::cout<<arr 这样调用,编译器会解析为调用cout << (const char*)std::...
C语言字符数组越界输出
所以当你输入12个'w'时,strlen(a)会等于12,sizeof(a)同样也是12,所以会得到12个w..这其实是非法的,虽然能够通过编译,但可以说这是个很危险bug..而且b数组也存在危险,因为它并没有以'\\0'结束,所以,你用strlen(b),测试它时,结果是不确定的,取决于它在b[9]后面的那个字节上找到'\\0'字符.....