分享免费的编程资源和教程

网站首页 > 技术教程 正文

C++,常量及sizeof函数,传值调用、指针调用和引用调用的区别

goqiw 2024-10-04 22:07:34 技术教程 13 ℃ 0 评论

说明

常量

C++定义常量有2中方式,1、使用宏定义,2、使用const修饰符。

sizeof函数

sizeof()用于统计数据类型所占内存的大小,同一类型,x86和x64所占的内存大小可能不一样。

传值调用、指针调用和引用调用

1、传值调用,把参数的实际值复制给形参,在函数内,修改形参不会影响实参。

2、指针调用,把参数的地址复制给形参,在函数内,该地址用到的是实际参数,修改形参会影响实参。

3、引用调用,把引用的地址复制给形参,在函数内,该引用用到的是实际参数,修改形参会影响实参。

案例

代码案例1:

#include <iostream>

using namespace std;

// 宏常量
#define PI 3.1415926

// const修饰
const double NUMBER = 3.1415926;

int main() {
	cout << "#define PI=" << PI << endl;
	cout << "NUMBER=" << NUMBER << endl;

	// sizeof函数,统计数据类型所占内存大小
	cout << "short 类型所占内存空间为: " << sizeof(short) << endl;
	cout << "int 类型所占内存空间为: " << sizeof(int) << endl;
	cout << "long 类型所占内存空间为: " << sizeof(long) << endl;
	cout << "long long 类型所占内存空间为: " << sizeof(long long) << endl;
	// x86输出
	// short 类型所占内存空间为: 2
	// int 类型所占内存空间为: 4
	// long 类型所占内存空间为: 4
	// long long 类型所占内存空间为: 8

	system("pause");
	return 0;
}

代码案例2:

#include <iostream>

using namespace std;

void swap1(int x, int y) {
	int tmp = x;
	x = y;
	y = tmp;
}

void swap2(int * x,int * y) {
	int tmp = *x;
	*x = *y;
	*y = tmp;
}

void swap3(int & x, int & y) {
	int tmp;
	tmp = x;
	x = y; 
	y = tmp;
}

int main() {
	int a1 = 123;
	int b1 = 456;
	swap1(a1,b1);
	// 没有发生交换
	cout << "a1=" << a1 << ",b1=" << b1 << endl;

	int a2 = 123;
	int b2 = 456;
	swap2(&a2, &b2);
	// 发生了交换
	cout << "a2=" << a2 << ",b2=" << b2 << endl;

	int a3 = 123;
	int b3 = 456;
	swap3(a3, b3);
	// 发生了交换
	cout << "a3=" << a3 << ",b3=" << b3 << endl;
	system("pause");
	return 0;
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表