指针指向数组

简介: 指针指向数组

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

声明:数据类型 *标识符;//形如 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 !

目录
相关文章
|
1天前
魔法指针 之 二级指针 指针数组
魔法指针 之 二级指针 指针数组
6 1
|
4天前
|
存储
一篇文章了解区分指针数组,数组指针,函数指针,链表。
一篇文章了解区分指针数组,数组指针,函数指针,链表。
11 0
|
10天前
|
编译器 C语言
【C语言】指针篇-深入探索数组名和指针数组- 必读指南(2/5)
【C语言】指针篇-深入探索数组名和指针数组- 必读指南(2/5)
|
2月前
|
搜索推荐 C语言
指针与数组
指针与数组
53 9
|
2月前
|
算法 Java
双指针在数组遍历中的应用
文章深入探讨了双指针技术在数组遍历中的应用,通过实战例子详细解释了快慢指针和首尾指针的不同用法,并提供了解决LeetCode相关问题的Java代码实现。
|
2月前
|
存储 程序员 C语言
指针的高级应用:指针数组、数组指针、函数指针等。
指针的高级应用:指针数组、数组指针、函数指针等。
89 0
|
3月前
|
运维
开发与运维数组问题之指针的加减法意义如何解决
开发与运维数组问题之指针的加减法意义如何解决
39 7
|
3月前
|
C++ 索引 运维
开发与运维数组问题之在C++中数组名和指针是等价如何解决
开发与运维数组问题之在C++中数组名和指针是等价如何解决
24 6
|
3月前
|
存储 C++ 运维
开发与运维数组问题之指针的定义语法如何解决
开发与运维数组问题之指针的定义语法如何解决
28 6
|
4月前
|
编译器 C语言
指针进阶(数组指针 )(C语言)
指针进阶(数组指针 )(C语言)