【C++】C++ 一些基础小Tips
来源:互联网 发布:水果店软件 编辑:程序博客网 时间:2024/05/22 17:34
前言
记录一下小tips,方便查阅和巩固基础知识。
1. 引用&,指针*,取地址符&
引用&是C++的新概念。
取地址符&是得到某一变量的地址信息。
指针指向一块内存,它的内容是所指内存的地址。引用是某块内存的别名。
引用必须在定义时被初始化,而且只能初始化一次,之后不可变。指针可变。
引用不能为空,指针可以为空。
以下是“值传递”示例程序。由于Func1函数体内的x是外部变量n的一份拷贝,改变x的值不会影响n,所以n的值仍然是0。
void Func1(int x){ x = x+10;}int n = 0;Func1(n);cout << "n=" << n << endl;//输出n = 0
以下是“指针传递”的示例程序。由于Func2函数体内的x是指向外部变量n的指针,改变该指针的内容将导致n的值改变,所以n的值成为10。
void Func2(int* x){ (*x) = (*x) + 10; // *作用是去指针(解引用),x本身表示n的地址信息。}int n = 0;Func2(&n);//这里&是取地址符cout<<"n="<<n<<endl;//输出n=10
以下是“引用传递”的示例程序。由于Func3函数体内的x是外部变量n的引用,x和n是同一个东西,改变x等于改变n,所以n的值成为10。
void Func3(int &x){ x = x+10;}int n = 0;Func3(n);cout<<"n="<<n<<endl;//输出n=10
指针可以被重新赋值以指向另一个不同的对象。引用总是指向在初始化时被指定的对象。
string s1("Nancy");string s2("Clancy");string& rs = s1; // rs引用s1string *ps = &s1; // ps 指向s1rs = s2; // rs仍旧引用s1,但是s1的值现在是“Clancy”ps = &s2; // ps 现在指向s2
2. 箭头(->)和点号(.)操作符
对于一个结构或者类,如果定义其对象的时候是指针,就要用"->"指向类成员或者结构元素。
当定义一般对象的时候就要用"."指向类成员或者结构元素。
对于结构:
struct MyStruct{ int menber_a;};MyStruct s;s.member_a = 1;MtStruct *ps;(*ps).member_a = 1;ps->member_a = 2;
对于类:
class A{ public play();}A *p;p->play();A p;p.play();
2.位运算符& | << >> ^ ~ %
http://blog.csdn.net/fox64194167/article/details/20692645
阅读全文
0 0
- 【C++】C++ 一些基础小Tips
- 【Tips/C++】常用小函数
- C语言基础和一些小tip
- 一些C基础的小编程题目
- [C语言基础]一些C语言小程序(一)
- [C语言基础]一些C语言小程序(二)
- 编程小问题和Tips(C#)
- C&C++编程过程中的小Tips
- C tips
- c++,tips
- C tips
- C tips
- C Tips
- 一些c小程序
- 编程小问题和Tips(C与C++)
- 3.一些小tips
- c小基础
- 一些c语言基础!
- Linux中目录proc/net/dev详解
- 数组指针与指针数组的区别
- 树莓派3安装ros-indigo
- Maya平常常用的快捷键分享
- ubuntu kylin 14.06+cuda8+cudnn5+opencv3.1+caffe环境搭建
- 【C++】C++ 一些基础小Tips
- linux常用命令之目录处理命令
- hibernate中相关问题hql与sql的不同实现方式
- leetcode 29 divide two integers
- Java Socket网络编程(一)
- Android 图片处理 部分案例整理
- Vue学习笔记八
- 利用mybatis-generator自动生成代码
- 第八节:SpringBoot集成MyBatis