随笔分类 -  C,C++,JAVA

摘要:对于全局变量的声明,这两天一直在写双链表的代码,是采用《算法导论》中定义了哨兵的伪代码实现的。我的具体思路这样的,在一个list.h文件中声明一个全局指针变量 nil,然后在在list.cpp和mian.cpp中调用nil,程序可以编译通过,运行时也没有报错,但是确总是得不到预期的结果。查阅了很多相当相 关资料,发现犯了一个很低级的错误,那就是全局变量声明关键字static和extern的使用。static声明的全局变量的作用域是一个文件之内,而extern定义的全局变量只要在其他文件中声明,是可以跨文件使用的。所以说,想要定义一个跨文件使用的全局变量时应该用extern定义。对于参数传递的一 阅读全文
posted @ 2013-04-14 18:07 FingerDancing 阅读(486) 评论(0) 推荐(0)
摘要:我们都知道,“=”等号操作符在编码语言中是个神奇的符号,因为它表示赋值操作而不是单纯的“等于”。我们也知道,“=”进行赋值操作时,有左值和右值的说法,当然左值和右值这里就不详述了,这个不是本文的重点。那么,下面,简单对java中的“=”操作符进行一下简单的说明: 首先,java中的数据类型分为两大类,基本类型和引用类型,基本类型:int、byte、char、short、long、float、double、boolean。引用类型:String、Array、Object。 那么先比较下面两段代码:1.1 int a = 3;2 int b = a;3 b++;4 System.out.p... 阅读全文
posted @ 2013-04-14 17:34 FingerDancing 阅读(3868) 评论(0) 推荐(0)
摘要:首先,我们看下面两段程序:(1).1 int[] a = {1, 2, 3, 4};2 int[] b = new int[4];3 b = a;(2).1 int[] a = {1, 2, 3, 4};2 int[] b = new int[4];3 int i = 0;4 for(int num:a){5 b[i++] = num;6 } 赋值之后,数组b的值都是{1, 2, 3, 4},但是这两种方法是有实质区别的。 首先,数组的初始化过程是这样的:对于int[] a;首先定义一个数组名a,然后将a这个变量进栈,当然这里没有对a进行初始化,所以a是一个空引用。对于int[... 阅读全文
posted @ 2013-04-14 17:04 FingerDancing 阅读(242) 评论(0) 推荐(0)
摘要:在写这篇文章之前,首先说点题外话,其实自己本来不想学这么多编程语言的,原本想把精通一门作为目标,但是由于工作的原因,现在又不得不接触了java Spring MVC框架,开始学Spring的时候,对依赖注入与控制反转产生了一些疑惑,通过了查阅资料和编程实践,将自己的一些学习心得总结如下: 在面向对象编程的时候,我们有时候会碰到这样的问题,高层模块的程序实现调用底层模块,当底层模块的对象类型改变时我们不得不改变高层模块的程序源代码,例如:1 public class WhereToGo{2 private Male MrKing = new Male();3 public ... 阅读全文
posted @ 2013-04-14 13:59 FingerDancing 阅读(263) 评论(0) 推荐(0)