文档章节

第09天C语言(18):结构体和函数

lyh2017iOS
 lyh2017iOS
发布于 2017/07/07 09:55
字数 341
阅读 1
收藏 0

#pragma mark 结构体和函数 ###pragma mark 概念 /** 结构体之间赋值 是 值传递, 相当于拷贝 主要看函数的 形参 如果是 数据类型 就是 值传递 如果是 地址 就是 就会影响外面的 实参 */ ###pragma mark 代码

#include <stdio.h>
struct Person {
    int age;
    char *name;
};
//void change (int value);
//void change(struct Person value);
void change(struct Person *value);

int main()
{
#warning 结构体和函数 传递结构体

    /*
    struct Person sp = {24,"lyh"};
    
    // 1.将结构体的属性传递给函数, 在函数中修改形参 不会影响实参
    printf("age = %i\n",sp.age);
//    change(sp.age);
    // 2.将结构体名称 作为参数传递, 在函数中修改形参不会影响到实参
    // 结构体之间赋值 是值传递, 系统会将A结构体的值 拷贝一份 到 B结构体中
    change(sp);
    printf("age = %i\n",sp.age);
     */
    
    /*
    struct Person sp1 = {24,"lyh"};
    struct Person sp2 = sp1;    // 结构体之间赋值 是 值传递, 相当于拷贝
    
    printf("sp1.age = %i\n",sp1.age);
    sp2.age = 998;
    printf("sp1.age = %i\n",sp1.age);
    printf("sp2.age = %i\n",sp2.age);
    */
#warning 结构体和函数 传递结构体指针
    struct Person sp1 = {24,"lyh"};
    printf("sp1.age = %i\n",sp1.age);
    change(&sp1);
    printf("sp1.age = %i\n",sp1.age);

    return 0;
}
//void change (int value)
// 结构体有作用域 要放到全局变量
//void change(struct Person value)
void change(struct Person *value)

{
//    value = 99;
    value->age = 100;
}

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 357
码字总数 137380
作品 0
朝阳
二十一、结构体

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 C语言的核心部分都...

长平狐
2013/03/28
258
0
C语言基础-13-结构体

C语言的核心部分都说得七七八八了,相信大家已经对C语言的基本数据类型(charintfloat)、数组、指针都很熟悉了,今天来学习C语言中另外一种数据类型:结构体。在iOS开发中,结构体是经常用到的...

Corwien
2016/03/16
10
0
二十三、typedef

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 这讲介绍C语言中很...

长平狐
2013/03/28
138
0
深入理解C语言结构体成员变量内存分配

欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。 1 问题描述 在学习C语言的时候,我们都会频繁的接触到结构体,使用结...

算法与编程之美
04/05
0
0
重新认识C语言

1.缘起 接触C语言有三四年时间了,工作中也一直使用C语言。但对于一些C语言的特性和定义还存在一些疑问,这里总结一下,作为以后参考。 2.C语言的链接属性 工作中无意发现了C语言一个有趣的问...

zhanglianpin
2015/07/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
13分钟前
1
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
21分钟前
0
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
31分钟前
15
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
57分钟前
1
0
区块链技术中的那些能商用的企业级应用

WEPOWER是一家立陶宛初创企业,旨在改变可再生电力项目的付费方式。WePower公司创始人Nick Martyniuk表示,政府统一收购价的存在推动了全球风能与太阳能市场的发展。因此,他的公司希望帮助那...

问题终结者
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部