1. 函数 数组 指针相关

1. 函数 数组 指针相关

1.1 定义并简单使用指针

int a;
int *p; \定义指针
p = &a; \a地址送指向整形数据的指针变量

#include<iostream>
using namespace std;
int main() {
	int a, b;
	int *p, *q;
	p = &a;
	q = &b;

	// 0x7ffde76283c8 0x7ffde76283cc
	cout << p << ' ' << q << endl;
	// 0 0
	cout << *p << ' ' << *q << endl;
}

1.2 函数-操作数组

函数操作数组,一般不仅要传数组头指针,而且要传数组长度.

int sum_L(int *, int);
int main() {
	int L[] = { 3, 38, 5, 44, 15, 36, 26,
			27, 2, 46, 4, 19, 47, 48, 50 };
	int length = sizeof(L) / sizeof(L[0]);
	int res = sum_L(L, length);
	cout << res << endl;
	return 0;
}

// A指针只接受整型数据地址,
// 因 L 是 int 型数据地址, A = L 就正确.
int sum_L(int *A, int len) {
	int sum = 0;
	for (int i = 0; i < len; i++)
		sum += *(A + i); // 指针操作数组
	return sum;
}

1.3 函数参数-指针调用

形式参数为指针,与实际参数指向相同的变量. 修改形参,影响实参.

void swap(int *, int *);
int main(){
  int a = 2, b = 3;
  cout << a << ' ' << b << endl;
  swap(&a, &b); // here
  cout << a << ' ' << b << endl;
}

void swap(int *a, int *b){ // here
  int temp;
  temp = *a; *a = *b; *b = temp;
}

1.4 函数参数-引用调用

形参是实参的别名.

// 函数声明
void swap(int &x, int &y);

int main() {
	// 局部变量声明
	int a = 100;
	int b = 200;

	cout << "交换前,a 的值:" << a << endl;
	cout << "交换前,b 的值:" << b << endl;

	/* 调用函数来交换值 */
	swap(a, b);

	cout << "交换后,a 的值:" << a << endl;
	cout << "交换后,b 的值:" << b << endl;
	return 0;
}

// 函数定义
void swap(int &x, int &y) {
	int temp;
	temp = x; 	/* 保存地址 x 的值 */
	x = y; 		/* 把 y 赋值给 x */
	y = temp; 	/* 把 x 赋值给 y  */
	return;
}
原文地址:https://www.cnblogs.com/ZhongliangXiang/p/7357105.html