C语言和JAVA一样,函数参数传递方式都为值传递方式
定义按值传递和按引用传递这两个术语是重要的。
按值传递意味着当将一个参数传递给一个函数时,函数接收的是参数的一个副本。因此,如 果函数修改了该参数,仅改变副本,而原始值保持不变。按引用传递意味着当将一个参数传递给一个函数时,函数接收的是参数的内存地址,而不是参数的副本。因 此,如果函数修改了该参数,调用代码中的原始值也随之改变。
JAVA和C中只有值传递方式,C++中有引用传递方式
但C中若传递的参数为地址,则可以达到引用传递的效果,但仍是值传递方式
void GetMemory(char *p, int num)
{
p= (char *)malloc(sizeof(char) * num);
}
int main(void)
{
char *str = NULL;
GetMemory( str, 100 ); // str 仍然为 NULL
strcpy(str, "hello"); // 运行错误
return 0;
}
Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,原因在于 (这里犯了值传递的错误,虽然p是指针,但对于p本身来说,这里还是值传递.即函数生成了个值和p相同的char *临时变量,即p的拷贝,为这个临时指针分配了空间,而p并没有改变.
)
相关文档:
java模式之单例模式:
单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
特点:
1,一个类只能有一个实例
2,自己创建这个实例
& ......
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。
Collection
├List
│├ ......
一 类
类是java中的一种重要的复合数据类型,是组成java程序的基本要素。它封装了一类对象的状态和方法,是这一类对象的原形。一个类的实现包括两个部分:类声明和类体
1.类声明:
[public][abstract|final]
class className [extends superclassName] [implements
inte ......
/**********Customer .java begin***********/
import java.util.HashSet;
import java.util.Set;
/**
* 如果两个Customer对象nama属性和age属性相同,那么这两个Customer对象相等。
* @author Administrator
*
*/
public class Customer {
private String nam ......
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构:
bootstrap classloader
|
extension classloader
&n ......