指针

指针

指针是一种比较复杂的数据类型。

一、指针的基本定义

指针定义基本语法如下:

int *p=NULL;//指针
int a;//辅助
p=&a;//将a的位置赋予p

其中 ,\(NULL\) 是指针中的一种特殊的值,代表 空指针 ,相当于 \(int\) 中的 "\(0\)"。

特殊地,若 \(a\) 变化,则 \(p\) 内的值也要变化。也就是说, 一个指针与其绑定的数据类型是一一对应的

二、指针的引用与运算

指针也可以进行运算:

int *p=NULL,*p1=NULL;
int a,b;
p=&a;
p1=&b;
a=10;b=20;
cout<<*p**p2; //乘法

指针有几种初始化方式:

int *p=NULL;//空指针
int *p2=new(int);//申请一个随机空间
int a;
int *p3=&a;//初始化a的地址

指针可以没有类型之分,即无类型指针:

它可以根据不同的情况随意变换自己的类型:

void *p;
int a=114514;
double b=3.1415926;
p=&a;
cout<<*(int*)p;
p=&b;
cout<<*(double*)p;

指针还可以指向自身:

int a=114514;
int *p;
int **pp;
p=&a;
pp=&p;
cout<<**pp;

三、数组指针

数组内也能用到指针,指针可以用于遍历数组内的每个数:

int *p=NULL,a[101];
for(int i=1;i<=n;i++)
    cin>>a[i];
p=&a[1];
for(int i=1;i<=n;i++){
    cout<<*p<<" ";
    p++;
}

也可以用以下形式:

int *p=NULL,a[101];
for(int i=1;i<=n;i++)
    cin>>a[i];
p=a;
for(int i=1;i<=n;i++){
    cout<<*(a+i)<<" ";
}
posted @ 2024-07-17 01:06  cannotmath  阅读(28)  评论(0编辑  收藏  举报