C++基础 指针

/*
* B站学习--[60 - ]
* day6 学习成果
*/

/*
 * 7.5 const 修饰指针
 *
 * 三种情况:
 *		1.const修饰指针 -- 常量指针
 *		2.const修饰常量 -- 指针常量
 *		3.const既修饰指针,有修饰常量
 * 
 *		int a = 10;			
 *		int b = 10;
 *		int * p = &a;
 * 
 *		常量指针:
 *		const int *p = &a;
 *		特点:指针的指向可以修改,但是指针的值不可修改。
 *		*p = 20;[错误,指针的值不可以改]
 *		*p = &b;[正确,指针的指向可以修改]
 * 
 * 
 *		指针常量:
 *		int * const p = &a;
 *		特点:指针的指向不可以修改,指针的值可以修改。
 *		*p = 20;[正确,指针的值可以改]
 *		*p = &b;[错误,指针的指向不可以修改]
 * 
 *		const既修饰指针,有修饰常量
 *		const int * const p  &a;
 *		特点:指针的指向和值都不可以修改。
 *		*p = 20;[错误,指针的值不可以改]
 *		*p = &b;[错误,指针的指向不可以修改]
 *	
 * 
 *  7.6 指针和数组
 * 
 *	利用指针方访问数组中的元素
 * 
 *	7.7 指针和函数
 * 
 *	利用指针作函数参数,可以修改实参的值
 * 
 *  7.8 指针、数组、函数
 * 
 * 
 * 
 * 
 * 
 * 
 */



#include <iostream>
using namespace std;

void test1() {
	//1.const修饰指针
	int a = 10;
	int b = 10;

	const int* p = &a;
	//指针的值不可以改,指针的指向可以改
	//*p = 10;错误
	p = &b;

	//2.const修饰常量
	int* const p2 = &a;
	*p2 = 100;//正确
	//p2 = &b;错误,指针的指向不可以修改

	//3.const修饰指针和常量
	const int* const p3 = &a;
	//指针的指向 和指针指向的值 都不可以改
	//*p = 100;错误
	//p3 = &b;错误
}

void test2() {
	int arr[] = {0,1,2,3,4,5,6,7,8,9};

	cout << "第一个元素为:" << arr[0] << endl;
	
	int* p = arr;//arr就是数组首地址
	
	cout << "利用指针访问第一个元素:" << *p << endl;

	//遍历数组
	for (int i = 0; i < 10; i++) {
		cout << *p << " ";
		p++;//让指针向后偏移4个字节
	}
	cout << endl;

}


//冒泡排序
void bubbleSort(int* arr,int len) {//int* arr 可以写成 int arr[]
	for (int i = 0; i < len - 1; i++) {
		for (int j = 0; j < len - i - 1; j++) {
			if (arr[j] > arr[j + 1]) {
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}

void printArray(int* arr,int len) {
	for (int i = 0; i < len; i++) {
		cout << arr[i] << " ";
	}
	cout << endl;
}

void test3() {
	int arr[] = { 5,1,2,5,7,4,14,5,2,5,45,63,84,6,9,9,8,45,4,1,25,3,25,9,8 };
	int length = sizeof(arr) / sizeof(arr[0]);
	cout << "排序前:" << endl;
	printArray(arr,length);
	bubbleSort(arr,length);
	cout << "排序后:" << endl;
	printArray(arr,length);
}


int main6() {
	
	test3();

	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值