C++笔记(4)——引用及结构体
引用
C++中有一个很方便的语法叫做引用,作用就是使得函数能够对传入的参数作出全局有效的改动。用法很简单,就是在传入参数的类型后面加上&
就可以指明传入的参数是引用。
例子:
#include <stdio.h>
void change(int& x){
x = 1;
}
int main(){
int x = 10;
change(x);
printf("%d\n", x);
return 0;
}
输出结果:1
。
补充一点:函数的参数名和实际传入的参数名可以不同,例如可以是void change(int& x)
,而传入的是a
。同时,常量不可以使用引用,例如在刚刚的例子中传入&a
,这样是不行的,因为地址本身不是一个变量,除非传入int *p1 = &a
的指针变量p1
。
结构体
定义的基本格式:
struct Name {
// 一堆定义代码
};
例子:
struct studentInfo {
int id;
char gender;
char name[20];
char major[20];
}Alice, stu[1000];
studentInfo
就是结构体的名字,Alice
就是结构体变量,stu[1000]
就是结构体数组。结构体里面不能够出现自身的数据类型(不然会循环定义)。
结构体的元素的访问方法之类的基本的知识点就不提了,这些网上都有。这里想记一下的主要是构造函数。构造函数就是用来初始化结构体的函数,直接定义在结构体内。构造函数不需要写返回类型,且函数名和结构体名相同。
例子:
struct studentInfo{
int id;
char gender;
// 下面这个就是构造函数!
studentInfo(int _id, char _gender) {
id = _id;
gender = _gender;
}
}
用法:
studentInfostu = studentInfo(10086, 'M');
注意,定义了构造函数则不能够不经过初始化就定义结构体变量。如果需要不经过类似上面的初始化就可以定义变量,则要加上student(){}
:
struct studentInfo{
int id;
char gender;
// 下面这行要添加上,这样才可以不初始化就能够定义结构体变量
studentInfo(){}
// 下面这个就是构造函数!
studentInfo(int _id, char _gender) {
id = _id;
gender = _gender;
}
}
C++笔记(4)——引用及结构体的更多相关文章
- 【Swift】学习笔记(八)——类和结构体
1.类和结构体的定义 <pre name="code" class="html">struct Resolution { var width = 0 ...
- swift学习笔记3——类、结构体、枚举
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- Bash脚本编程学习笔记07:循环结构体
本篇中涉及到算术运算,使用了$[]这种我未在官方手册中见到的用法,但是确实可用的,在此前的博文<Bash脚本编程学习笔记03:算术运算>中我有说明不要使用,不过自己忘记了.大家还是尽量使用 ...
- swift学习笔记之-类和结构体
//类和结构体 import UIKit //类和结构体 /* 1.枚举enum.结构体struct和String.Array.Dictionary类型,都属于值传递类型,被赋值给新的常量或变量时传递 ...
- Go语言学习笔记(四)结构体struct & 接口Interface & 反射
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...
- Go语言学习笔记(四)结构体struct & 接口Interface & 反射reflect
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...
- C++学习笔记(六)--结构体
1.一种自定义的类型--结构体定义: struct 结构体名称 { //成员表列也称作域 还可以包括函数,即函数成员,不过一般结构体类型中不包含,而是放在类中. 类型名 成员名; };这种结构体类型类 ...
- Bash脚本编程学习笔记06:条件结构体
简介 在bash脚本编程中,条件结构体使用if语句和case语句两种句式. if语句 单分支if语句 if TEST; then CMD fi TEST:条件判断,多数情况下可使用test命令来实现, ...
- IOS 学习笔记 2015-03-24 OC-API-常用结构体
一 标题 常用结构体 二 API 1 NSRange 表示一个范围 A 实例化 NSRange rg={3,5};//第一参数是起始位置第二个参数是长度 B 实例化 NSRange rg2=NSMak ...
随机推荐
- Django模板层2
一.单表操作 1.1 开启test from django.test import TestCase import os # Create your tests here. if __name__ = ...
- 用Python编写一个ftb
程序文件结构 具体代码实现 服务端: 执行文件bin/ftb_server import os,sys PATH = os.path.dirname(os.path.dirname(os.path.a ...
- Codeforces Round #427 (Div. 2) - B
题目链接:http://codeforces.com/contest/835/problem/B 题意:给定一个数k和一个数字串n.问你最少改几个数字才能满足所有数字的和不小于k. 思路:考虑贪心,每 ...
- 牛客练习赛14 E - 无向图中的最短距离 (bfs+bitset)
一个链接:https://ac.nowcoder.com/acm/contest/82/E来源:牛客网 无向图中的最短距离 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144 ...
- 注册和登录(关于Cookie)
前记 我将描述一下登陆和注册之间发生了什么,将场景分为客户端和服务端,服务器是Node.JS,客户端是由JS写的 注册 1.注册请求 这是由客户端发送一个POST请求给服务端,其中包含了用户名和密码 ...
- eclipse中export 的jar file与 runnable jar file的区别
(1)直接运行 .class的方法 java -cp . com.guangfa.demo1 , 不用加.class后缀 .-cp 是 -classpath 缩写,是指定类运行所依赖其他 ...
- axios 各种请求方式传递参数
get delete 方法较为不同 注意:每个方法的传参格式不同,具体用法看下方 get请求方式将需要入参的数据作为 params 属性的值,最后整体作为参数传递 delete请求方式将将需要入参的数 ...
- React Native 之项目的启动
运行项目有两种方法 1. 到根目录,执行 react-native run-ios 命令 会开启一个本地服务,加载jsbundle文件,然后是去index.js文件 import {AppRegist ...
- [window] 使用Pyhton轻便好用的spyder IDE进行代码分析时如何指定相关的配置文件
spyder 使用pylint这个第三方库进行代码检查,其实pylint使用的代码规范默认也是pep8,不过该库还有 其它用途,在这里我专门写写在代码分析时,如何指定配置文件 一般来说,使用spyde ...
- 循环结构for语句-求和思想
循环结构for语句的练习-求和思想:需求1:求出1到10之间的数据和 public static void main(String[] args) { int sum = 0; for(int i = ...