strcpy(studname[k],ntemp)
bai strcpy(studname[i],studname[k])
strcpy(ntemp,studname[i])
strcpy(ntemp,studname[k])
strcpy(studname[k],studname[i])
strcpy(studname[i],ntemp)
扩展资料:
如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。如果花括号中提供的初值个数(即字符个数)大于数组长度,则出现语法错误。
如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即'\0')。如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。
参考资料来源:百度百科-字符数组
一般出现这种情况就是你引用了你没有初始化的内存空间的。输出"烫烫烫烫"是因为vc会自动把未用函数的局部变量空间按字节全部初始化为CC(打个比方,你定义一个10个元素的char数组,结果你初始化了2个元素,后面没初始化,没赋值,没有使用,就变CC了)。CC CCH在Unicode的编码中就是表示中文的“烫”,所以就是很多“烫”字。局部变量在没有初始化时, C语言规范要求是随机值.但VC系列没有按照这个规定来做, 而是把没有初始化的栈空间赋值为0xCC.
于是 在输出未初始化的局部变量字符串时,就会输出
0xCC对应的字符. 而两位代表一个汉字, 0xCCCC就是汉字烫.