首页 > 编程语言 > 详细

c++基础--指针学习

时间:2021-05-31 11:41:11      阅读:14      评论:0      收藏:0      [点我收藏+]

指针

1.指针的定义

指针记录变量的地址

定义 :数据类型 * 变量名

赋值 :int *p=&a

int *p=&a

p表示指针所指向的内存地址

*p表示内存所指向的内存地址中的值

int main(){
	//1.定义指针 指针记录变量的地址
	int a = 10;
	int * p;  // int *p 
	p =&a;    //赋值
	cout << p<< endl;
	//2.指针的使用 解引用的方式*p
	*p = 10;
	cout << a << endl; //10
	cout << *p << endl;//10
	system("pause");
	return 0;
}

2.指针所占的内存空间

指针也是种数据类型 在32位操作系统中 所有的指针类型都占四个字节

int main() {
	int a = 10;
	int* p = &a;
	//32位操作系统 不论是什么指针类型 指针空间所占内存大小为四个字节
	cout << "sizeof(int*)=" <<sizeof(int *) << endl;   //4
	cout << "sizeof(int*)=" << sizeof(float *) << endl;
	cout << "sizeof(int*)=" << sizeof(double *) << endl;
	system("pause");
	return 0;
}

3.空指针和野指针

空指针和野指针都不可以访问

int main() {
	//1.空指针用于给指针进行初始化
	int* p = NULL;
	//2.空指针不可以进行内存访问
	//0-255之间的内存编号是系统占用的
	//cout << *p << endl;//不可访问
	//野指针 
	int* p = (int*)0X1100;
	//cout << *p << endl;
	system("pause");
	return 0;
}

4.const修饰指针

const int *p;      //常量指针 可以改变指针指向 所指向的值不可改变
int* const p;      //指针常量 可以改变指针指向的值 不可改变指针的指向
const int* const p;//const既修饰指针又修饰常量 都不可以改变

5.指针与数组

利用指针元素访问数组

int main() {
	//利用指针访问数组元素
	int a[] = { 1,2,3,4,5 };
	int* p = &a[0]; //int *p=a;
	cout << "访问数组的第一个元素: " <<*p << endl;
	//遍历访问数组只需 P++


	system("pause");
	return 0;

}

6.指针与函数

指针作为形参可以改变实参的值

//值传递
void swap(int a, int b) {
	int temp = a;
	a = b;
	b = temp;
	cout << "swap函数中的值:a= " << a <<" b="<<b << endl;
}
//地址传递 指针作为形参可以改变实参的值
void swap2(int* p, int* q) {
	int temp = *p;
	*p = *q;
	*q = temp;
	cout << "swap2函数中的值" << "a=" << *p << " b=" << *q << endl;
}
int main(){

	int a = 10;
	int b = 20;
    //值传递
	swap(a, b);
	cout <<"主函数中: "<< "a=" << a ;
	cout << " b=" << b<<endl;
	cout << "---------------------" << endl;
    //地址传递
	swap2(&a, &b);
	cout << "主函数中: " << "a=" << a;
	cout << " b=" << b << endl;
	cout << " " << endl;
	system("pause");
	return 0;
}

运行结果

技术分享图片

指针作为形参可以改变实参的值

c++基础--指针学习

原文:https://www.cnblogs.com/panq/p/14829626.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!