C语言发现
夏湘宁
奋斗ing...
展开
-
关于局部变量问题得出的发现与反思
今日群里有人问了一段代码为何无法执行,代码简化如下:do{int y=1;}while(y==1)我稍加思索以后认为是代码块作用域的问题,就是定义完y以后,退出该代码块,y也就随之消失了。我记得所学的static这个关键字可以声明一个静态变量,就认为在int y=1之前加上static就可以增加变量的作用域,然后做了一下尝试do{static int y=1;}while(y==1)结果原创 2015-03-02 22:50:29 · 397 阅读 · 0 评论 -
void main与int main(void)
今天c语言课刚开,从开始的时候看C语言二级的题目到现在新发的课本,最不顺眼的就是主函数只用一个main()或用void main()。 查阅资料发现:C99标准中,定义的是int main(void),这里的void说明main()是不接收参数的,这是标准的,不要让他空着,main 函数的返回值类型必须是 int ,为什么有的会通过呢?这是编绎器给你自动加上去的,最后的return 0;也是,不要原创 2015-03-03 15:50:11 · 1258 阅读 · 0 评论 -
二维数组的初始化方式总结
近日阅读别人的代码,发现自己在二维数组的初始化方面存在盲点,遂总结一下,希望其他看到的人能得到一些收获。 一、初始化和赋值的区别: 初始化即在定义二维数组时就赋值,如:int a[2][3]={1,2,3,4,5,6}; 而对二维数组赋值最简单的方法(对于新手来说,高手应该有的是方法)就是使用for循环来赋值了,但是for循环赋值是有规律的,若要无规律的赋值,int a[2][3]; a[2]原创 2015-03-03 16:35:18 · 4692 阅读 · 1 评论 -
由“左操作数必须为左值”引起的反思
今日写一个程序无论如何也调不好,后来一步步做改动筛选,直到筛到这一步 bool in_word=true; char ch; while (ch=getchar() && in_word){}循环到这一步无论如何都不继续进行,于是我就改变了一下顺序。ch=getchar();while(in_word){}程序又可以正常运行了,遂将获取字符的语句顺手加到了后面。while (原创 2015-04-17 23:13:47 · 3211 阅读 · 1 评论