指针指向数组
  6DMaaPzJglxt 2023年12月05日 14 0


指针用于“存放内存单元地址”

声明:数据类型 *标识符;//形如 int *p;//存放int数据类型的地址 数据在定义的时候程序就已经为其分配内存空间
其中关于* 和 &作为一元操作符时

int *p;//*声明指针
int a;
int *ptr=&a;//&取地址,&作为参数传入函数的时候是引用

指针的赋值

int a;
int *p=&a;//指向a地址的指针

等价于

int a,*p;
p=&a;

ok,我们来看一下数组
数组名实际上是一个不能被赋值的指针(指针常量)
接下来我们可以通过指针来取出数组中的数据

#include<iostream>
using namespace std;
int main(){
	//对于指针的学习笔记;
	//指针是用来存放数据的内存单元地址的,声明一个变量的时候就已经为该变量申请内存空间
	cout<<"指针是用来存放数据的内存单元地址的,声明一个变量的时候就已经为该变量申请内存空间"<<endl;
	int a=1;//已经为a分配空间
	int *p=&a,*pa;
	pa=&a;//指向int型数据地址的指针,也就是说int *p=&a等价于int *p;p=&a; 
	cout<<"p="<<p<<endl;
	cout<<"*P="<<*p<<endl;
	cout<<"pa="<<pa<<endl;
	cout<<"*pa="<<*pa<<endl;
	cout<<"-------------------------\n测试:\n";
	//进阶,我们知道数组的名字表示首地址,我们用指针来打印数组
	int array[]={1,9,9,8,0,8,22};//七个元素
	int *ptr=array;//声明指针的时候指向数组第一个元素的地址 也等价于int *ptr;ptr=array;
	//等价
//	int *ptr;
//	ptr=array; 
	for(int i=0;i<7;++i){
		cout<<*(ptr+i)<<" ";
	} 
	cout<<endl;
	return 0;
}

上面是我测试的时候用的,简化一下

#include<iostream>
#include<stdlib.h>
using namespace std;
int main(){
	system("color 3");
	cout<<"-------------------------\n测试:\n";
	//进阶,我们知道数组的名字表示首地址,我们用指针来打印数组
	int array[]={1,9,9,8,0,8,22};//七个元素
	int *ptr=array;//声明指针的时候指向数组第一个元素的地址 也等价于int *ptr;ptr=array;
	for(int i=0;i<7;++i){
		cout<<*(ptr+i)<<" ";
	} 
	cout<<endl;
	system("pause");
	return 0;
}

指针指向数组_数组


ok,nice !


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月05日 0

暂无评论

推荐阅读
6DMaaPzJglxt