c语言中的结构体为值类型,当把一个结构体赋值给另一个结构体时,为值传递

#include <stdio.h>

int main()
{
    struct person
    {
        int age;
    };

    struct person p1 = {19};

    //值传递,将p1中所有成员变量的值赋值个p2中对应的成员变量
    struct person p2=p1;
    //改变p1的成员变量的值,不会影响p2中对应成员变量的值
    p1.age = 20;

    printf("p1.age=%d\n",p1.age);

    printf("p2.age=%d\n",p2.age);

    return 0;
}

结果:

时间: 2024-08-01 10:45:33

c语言中的结构体为值类型,当把一个结构体赋值给另一个结构体时,为值传递的相关文章

结构体和值类型(转)

如果你曾经使用过 Objective-C 或者像 Ruby,Python,JavaScript 这样的语言,可能会觉得 Swift 里的结构体就像外星人一样奇异.类是面向对象编程语言中传统的结构单元.的确,和结构体相比,Swift 的类支持实现继承,(受限的)反射,析构函数和多所有者. 既然类比结构体强大这么多,为什么还要使用结构体?正是因为它的使用范围受限,使得结构体在构建代码块 (blocks) 的时候非常灵活.在本文中,你将会学习到结构体和其他的值类型是如何大幅提高代码的清晰度.灵活性和可

C#值类型和引用类型用C语言理解

我刚用C#一个来月,可能理解得不对,还请大家指教. 读懂文章你需要对C语言的指针有所理解. 需要注意区别:对C\C++来说,任何类型都可以当成C#的"引用类型",因为有指针. [在内存上] void foo() { int aaa = 0; //值类型,aaa在Stack上分配(SUB ESP,XX) int* paaa = new int[123]; //引用类型,paaa在Heap上分配,HeapAlloc(GetProcessHeap()...) foo2(&aaa);

.Net中值类型和引用类型的区别

解析:CLR支持两种类型:值类型和引用类型.用Jeffrey Richter(<CLR via C#>作者)的话来说,"不理解引用类型和值类型区别的程序员将会把代码引入诡异的陷阱和诸多性能问题".这就要求我们正确理解和使用值类型和引用类型. 值类型包括C#的基本类型(用关键字int.char.float等来声明),结构(用struct关键字声明的类型),枚举(用enum关键字声明的类型):而引用类型包括类(用class关键字声明的类型)和委托(用delegate关键字声明的

探索C#中的值类型和引用类型

记得大三上学期上C#课程的时候,老师第一堂课就重点给我们讲了一下C#中的数据类型.我们都知道,C#是一门强类型的高级编程语言,了解它的数据类型是非常有必要的.老师当时给我们列举了很多数据类型,然后问我们哪些是值类型,那些是引用类型.说实话,当时对于这个问题还真是回答不上来,或许可以说是自己没有多少底气回答.虽然大一学C++的时候接触过值类型和引用类型,但是因为没有深究,或者根本没有真正了解他们的区别,以至于在自己写代码时无形当中用到了却还是不了解它们之间的具体区别. 现在大四了,也到了快紧张面试

C语言中的单引号和双引号含义

C语言中的单引号和双引号含义迥异, 用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值,因此,采用ASCII字符集的编译器而言,'a'的含义与0141或97严格一致. 而用双引号引起的字符串,代表的却是一个指向无名数组起始字符的指针,该数组被双引号之间的字符以及一个额外的二进制值为零的字符'\0'初始化.

C语言中容易被忽略的细节(第二篇)

前言:本文的目的是记录C语言中那些容易被忽略的细节.我打算每天抽出一点时间看书整理,坚持下去,今天是第一篇,也许下个月的今天是第二篇,明年的今天又是第几篇呢?--我坚信,好记性不如烂笔头. 第一篇链接:C语言中容易被忽略的细节(第一篇) 1.C语言中只有一维数组,而且数组的大小必须在编译期就作为一个常数确定下来.C语言中数组元素可以是任何对象,也可以是另外一个数组,即数组的数组. 2.C语言允许初始化列表出现多余的逗号.例如:int days[] = {1,2,3,};作用:方便自动化生成代码.

[转] 值类型与引用类型(中)

本文将介绍以下内容: 类型的基本概念 值类型深入 引用类型深入 值类型与引用类型的比较及应用 1. 引言 上回[第八回:品味类型---值类型与引用类型(上)-内存有理]的发布,受到大家的不少关注,我们从内存的角度了解了值类型和引用类型的所以然,留下的任务当然是如何应用类型的不同特点在系统设计.性能优化等方面发挥其作用.因此,本回是对上回有力的补充,同时应朋友的希望,我们尽力从内存调试的角度来着眼一些设计的分析,这样就有助于对这一主题进行透彻和全面的理解,当然这也是下一回的重点. 从内存角度来讨论

C语言中函数指针

函数调用的方法有两种分别如下: void Fun(void) { //do something } int main(void) { ... Fun(); ... return 0; } void Fun(void) { //do something } int main(void) { ... void (*p)(void); p=Fun; p(); return 0; } 上面两种方式都可以调用函数,第二种方式在回调函数中用的最多,尤其是在操作系统的任务切换中.那么我们就重点来分析下第二种方

Java中值类型和引用类型的区别

[定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值, 那么调用这个方法是传入的变量的值也将改变.值类型表示复制一个当前变量传给方法, 当你在这个方法中改变这个变量的值时,最初生命的变量的值不会变.通俗说法: 值类型就是现金,要用直接用:引用类型是存折,要用还得先去银行取现.----(摘自网上) [值类型] 也就是基本数据类型 基本数据类型常被称为四类八种 四类: 1,整型 2,浮点型 3,字符型4,逻辑型 八种: 1,整型3种 by

Java中值类型与引用类型

JAVA中值类型和引用类型的不同? 1.定义 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变:值类型表示复制一个当前变量传给方法,当你在这个方法中改变这个变量的值时,最初生命的变量的值不会变.通俗说法: 值类型就是现金,要用直接用:引用类型是存折,要用还得先去银行取现. 2.分类 (1)值类型 值类型也就是基本数据类型 基本数据类型常被称为四类八种. 四类:1.整型 2.浮点型 3.字符型4.逻辑