java代码:
public class Test{ static int e; // 默认是0
static String f; //默认是null public static void main(String[] args) { int a = ;
char [] b = {'a','b','c'};
String c = "hello";
Person d = new Person(); new Test().TestParameter(a, b, c, d, e); System.out.println("a="+a);
System.out.println("b="+b[]+b[]+b[]);
System.out.println("c="+c);
System.out.println("d="+d.id+d.name);
System.out.println(e);
System.out.println(f); } public void TestParameter(int a, char[] b,String c, Person d,int e){//这里的 Person d 相当于c中的 Person *d
a++; //a = a+1; 现在的a指向的不是刚开始传入的a的地址了,原来的a还是那个数
b[] = 'e'; //地址没有变,操作的就是b本身
c="abc";//一赋值,就表示c重新指向新的地址,新地址的内容是"abc",原来的数据没变
d.id=;//地址没变,数据会被修改
d.name = "tom";
e = ;
f = "ffff";
  //注意:如果参数出现被赋值的情况,说明现在的参数地址已经改变,之后的操作都是对新地址的操作,刚开始传入的数据并没有动。 } }

c代码:
#include <stdio.h> typedef struct Person
{
int id;
char name[];
}Person , *Per;

//形参是指针类型的,那么形参和实参都指向同一块数据域,形参和实参的地址是相同的,形参改变,实参也会改变
//形参是普通类型的,当实参传入时,形参操作的是实参复制出来的另一份数据域,形参和实参的地址不同,形参改变,实参不受影响
void func(Person p1, Person *p2, int a1, int *a2)
{
p1.id = ; strcpy(p2->name,"jerry"); a1 = ;
*a2 = ; } //形参是地址类型的,形参改变,实参也会改变
void func02(Person &p){ } void main(){ struct Person p1;
struct Person p2; int a1 = ;
int a2 = ; p1.id = ;
strcpy(p1.name,"tom01");
p2.id = ;
strcpy(p2.name,"tom02"); func(p1,&p2,a1,&a2);
   func02(p); // 这里传入的是普通类型,如果p是指针类型的,需要*p这么传
printf(" a1=%d a2=%d p1.id=%d p2.name=%s\n",a1,a2,p1.id,p2.name); }

方法传参(JAVA与C的比较)的更多相关文章

  1. 再谈Java方法传参那些事

    把一个变量带进一个方法,该方法执行结束后,它的值有时会改变,有时不会改变.一开始会觉得--“好神奇呀”.当我们了解java内存分析的知识后,一切都是那么简单明了了--“哦,这么回事呀”.但是今天的上机 ...

  2. Java 常用类库一,main方法传参String[] args;获取输入Scanner ;hasNext();hasNextInt()

    1. main方法传参 package com.zmd.common_class_libraries; /** 给mian方法传参测试 */ public class MainArgsTest { p ...

  3. java的方法传参,最容易混淆的问题!!!

    参数传递 参数传递,可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了.这种传递方式,我们称为参数传递. 在这里 ...

  4. 对象引用 方法传参 值传递 引用传递 易错点 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  5. MyBatis dao层 方法传参

    MyBatis dao层 方法传参有三种方法. 1. 以下标的方法获取参数. <update id="insertSuccessKilled">       INSER ...

  6. EasyUI queryParams属性 在请求远程数据同时给action方法传参

    http://www.cnblogs.com/iack/p/3530500.html?utm_source=tuicool EasyUI queryParams属性 在请求远程数据同时给action方 ...

  7. javascript 字符串方法传参

    javascript 字符串方法传参由于嵌套的单引号,双引号过多.有点混乱.. 正确方法如下: '   <td align="left"><input type= ...

  8. vue 使用 axios 时 post 请求方法传参无法发送至后台

    axios 时 post 请求方法传参无法发送至后台报错如下 Response to preflight request doesn't pass access control check: No ' ...

  9. VBA中方法传参

    将变量做为参数传递给方法 Sub Test() Dim a As Integer a = Add a Debug.Print a '引用传递,a的值发生了变化,输出101 End Sub Functi ...

随机推荐

  1. 窥探Vue.js 2.0

    title: 窥探Vue.js2.0 date: 2016-09-27 10:22:34 tags: vue category: 技术总结 --- 窥探Vue.js2.0 令人兴奋的Vue.js 2. ...

  2. MUI APP关于页面之间的传值,plusready和自定义事件

    最近在用MUI开发这个APP,发现有时候这个plusready不起作用,表现在,这个页面如果重复打开,这个plusready就进不去,然后上一个页面传过来的值,就没法接收了.这个经过MUI官方确认,是 ...

  3. CRL快速开发框架系列教程二(基于Lambda表达式查询)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  4. RAC 主库配置单实例ADG

    1.主库准备工作 2.物理备库准备工作 3.创建物理备库 写在前面: 最终实现环境:11.2.0.4版本 2节点RAC + 1节点DG 本文旨在弄清楚整个搭建过程中涉及到的基础概念: 本文安装maxi ...

  5. 读书笔记--SQL必知必会03--排序检索数据

    3.1 排序数据 子句(clause) SQL语句由子句构成.一个子句通常由一个关键字加上所提供的数据组成. ORDER BY子句可以取一个或多个列的名字,将SELECT语句检索出的数据进行排序. O ...

  6. 读书笔记--SQL必知必会19--存储过程

    不同的DBMS对存储过程的实现不同,差异巨大,这里不涉及具体的DBMS,仅仅说明存储过程的简单含义. 19.1 存储过程 简单来说,存储过程就是为以后使用而保存的一条或多条SQL语句. 可以将存储过程 ...

  7. IIS7.5上的REST服务的Put,Delete操作发生HTTP Error 405.0 - Method Not Allowed 解决方法

    WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝.移动.删除等.在I ...

  8. PHP用单例模式实现一个数据库类

    使用单例模式的出发点: 1.php的应用主要在于数据库应用, 所以一个应用中会存在大量的数据库操作, 使用单例模式, 则可以避免大量的new 操作消耗的资源. 2.如果系统中需要有一个类来全局控制某些 ...

  9. Eclipse 实用技巧

    代码智能提示 Java智能提示 Window -> Preferences -> Java -> Editor -> Content Assist -> Auto Act ...

  10. shell脚本规划化模板

    shell脚本规划化模板 Linux运维过程中,shell脚本是不可缺少的工具,但是每个运维人员编程的习惯都不一样,很多时候就是实现某个功能,写出来的脚本都是烂七八糟的.脚本必须规范化,应该从以后几个 ...