栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++ day3 指针入门,const修饰指针,指针和数组和函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++ day3 指针入门,const修饰指针,指针和数组和函数

1,指针定义

指针就是记录地址

1指针定义

数据类型*指针变量名

int a = 10     //定义一个变量

int * p          //定义一个指针变量

p = &a        //取a 的地址赋给p    &是取址符

int *p         //定义一个指针变量并且指向一个地址,使p为一个地址

 2,指针可以通过解引用的方法来找到指针指向的内存

指针前加一个星号

*p = 1000      //p是a的地址,*p就是通过地址的到a的值  ,然后直接将内存里的值改成了1000,

cout << a <<       //这里的a已经为1000了

指针所占用的内存空间大小   sizeof(int *)或sizeof(p)     {32位4字节,64位8字节} 

3.空指针,野指针

空指针:指针指向地址编号为0的空间(初始化指针变量)

int * p = NULL;                        (需要先有头文件stdlib.h)

*p = 100;   错误:空指针不可以访问

野指针:z指针指向非法的内存空间

比如int * p =(int*)0x1100                //0x1100是一个十六进制的数,前加(int*)可将其强转成一个地址

这个地址没有申请,没有权限去操作,编译无错,运行会出错

4,const修饰指针

1.const修饰指针

2.const修饰常量

3.const修饰指针,也修饰常量

如int a=10;

int b =10;

 1.const 修饰指针-------常量指针

 const int *p = &a;                   // 指针的指向可以修改,但指针指向的值不可以修改

可这样理解:const修饰的是*p,即*p解引用的值被固定了

*p = 20;                错误,不能改p所指向地址的值

p = &b;                  正确,指向可以修改

2.const修饰常量----------指针常量

int * const p = &a;            // 指针的指向不可以修改,但指针指向的值可以修改

可这样理解:const修饰的p,即指针p的地址被const固定,变成常量

*p = 20;   正确

p = &b;    错误

 3.const修饰指针,也修饰常量

const int * const p = &a             //都不可修改

5,指针和数组

int *p = arr    //因为数组名就是数组的首地址,输出*p自动输出数组第一个数值

cout << *p   //这里输出的是数组的首位

p++        //因为数组是整型,每个数字4字节,这里的p++代表p往后偏移了4个字节,变成了数组第二位的地址

cout << *p  //这里输出的数组二位

int main()
{
	int arr[3] = { 1231,23,3 };
	int *p = arr; 
	for (int i = 0; i < 3; i++)
	{
		cout << *p << endl;
		p++;
	}
	system("pause");
	return 0;
}

指针遍历输出数组

6,指针和函数

1,值传递时,形参的改变不影响实参的值

2.地址传递时,形参的改变影响实参的值

void swap(int *a, int *b)            //定义了两个指针来接收两个值的地址
{
	int temp = *a;                    //这里代表这两个地址所表示的值发生了互换,所以max和min            
                                        所表示的值也发生了互换
	*a = *b;
	*b = temp;
	cout << "*a" << *a < 

值传递:主函数定义的变量的值赋给了调用函数上新定义的变量,所以新定义变量之间的改变不影响主函数上变量的值

地址传递:主函数定义变量值的地址传给了调用函数上新定义的指针,所以指针的解引用改变了地址所代表的值,因此主函数变量的值也要发生改变

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429689.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号