几道华为经典C语言面试题
摘要:1、找错voidtest1(){charstring[10];char* str1="0123456789";strcpy(string, str1);}这里string数组越界,因为字符串长度为10,还有一个结束符’\0’。所以总共有11个字符长度。string数组大小为10,这里越界了。PS:使用strcpy函数的时候一定要注意前面目的数组的大小一定要大于后面字符串的大小,否则便是访问越界。voidtest2(){charstring[10], str1[10];for(i=0; i=MAX_SRM)return(NULL_SRM);elsereturnSRM_no;}
阅读全文
posted @
2013-09-08 18:56
coding人生
阅读(413)
推荐(0)
交换两个变量的值,不使用第三个变量。
摘要:有两种解法,一种用算术算法,一种用^(异或)a = a + b;b = a - b;a = a - b;ora = a^b;//只能对int,char..b = a^b;a = a^b;ora ^= b ^= a;
阅读全文
posted @
2013-09-08 18:54
coding人生
阅读(119)
推荐(0)