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学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
面向Java应用的快速Web服务支持工具 - Netrifex
Proxisoft今天宣布Netrifex 1.0版。
Netrifex可以立即把Web Services添加到现有的Java SE和Java EE应用程序,从而实现把Web Services快速、低费用的部署到整个企业应用。
Netrifex增加Web Services到现有的Java应用中。该产品使用户能够:
* 快速创建Web Service ......
现在,谈云计算的可多了,不过,一般比较关注的是Google和Amazon的云服务。从大范围来看,也只有这两家获得了公众的更多关注。比如,我个人很感兴趣的,就是Google的App Engine使用户能够在Google基础设施上构建和托管 Web 应用程序。至于Amazon,它的AmazonWeb Services还包括Elastic Clou ......
package com.chinacache.utils;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
public class FileUtils {
private static final Logger logger = Logger.getLogger(FileUtils.class);
/**
* 移动文件到指定目 ......
好久了,都想向学习JAVA的新人写点东西,因为我实在看不下去了,看不下去很多误导JAVA学习者的观点,遍及天下!网络让好的东西流行,可是往往也让错的东西出现的次数多了变的好像正确了,三人成虎,指鹿为马似乎在网络里更加容易发生,好了废话不说,请看我细细向你道来。
秘密一,学习JAVA好未必可以找到JA ......