【C语言_16】初步了解指针

时间:2022-10-08 15:29:00

前言

每一个变量都有一个内存位置,每一个内存位置都定义了,可使用 &(取地址运算符) 运算符访问的地址,它表示了在内存中的一个地址。

&的用法:

&数据对象
//获取数据对象首地址和所需存储空间大小

1.什么是指针?

指针也就是内存地址,指针变量是用来存放内存地址的变量。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。

2.如何声明指针?

//目标数据类型* 变量名
//目标数据类型*变量名
//目标数据类型 *变量名
int n;
int* pn=&n;
//int*pn=&n;
//int *pn=&n;
//pn用于保存变量n的首地址和所需空间大小
//我们把pn称作n的指针;或者pn指向n.

3.探究指针输出的值

  • 指针通过值来表示目标数据对象的首地址
  • 指针的大小在32位平台是4字节,在64位平台是8字节
#include<stdio.h>
int main()
{
int n1;
int n2;
int n3;
int n4;
int* pn1=&n1;
int* pn2=&n2;
int* pn3=&n3;
int* pn4=&n4;
printf("pn1=%u\n",pn1);
printf("pn2=%u\n",pn2);
printf("pn3=%u\n",pn3);
printf("pn4=%u\n",pn4);
return 0;
}

运行结果:为n1到n4的首地址

【C语言_16】初步了解指针

4.如何使用指针?

*指针运算符*指针   根据指针中存储的首地址和空间大小找到目标数据对象

1.查询目标数据对象的值

#include<stdio.h>
int main()
{
int n=666;
int* pn=&n;
printf("pn=%u\n",pn);
printf("*pn=%d\n",*pn);
return 0;
}

运行结果:

【C语言_16】初步了解指针

2.修改目标数据对象的值

#include<stdio.h>
int main()
{
int n=0;
int* pn=&n;
char c=0;
char* pc=&c;
//通过指针修改目标数据对象的值
*pn=666;
*pc='A';

printf("pn=%u\n",pn);
printf("n=%d\n",n);
printf("pc=%u\n",pc);
printf("c=%c\n",c);
return 0;
}

运行结果:

【C语言_16】初步了解指针

5.强制转换指针类型

#include<stdio.h>
int main()
{
int n=65;
int* pn=&n;

char* pc=(char *)pn;

printf("pn=%u\n",pn);
printf("pc=%u\n",pc);
printf("*pn=%d\n",*pn);
printf("*pc=%c\n",*pc);
return 0;
}

运行结果:

【C语言_16】初步了解指针