首页 > 其他分享 >C语言零基础入门-指针-03

C语言零基础入门-指针-03

时间:2022-10-18 16:03:41浏览次数:49  
标签:03 p1 int 数据类型 C语言 地址 printf 指针

C语言零基础入门-指针-03

本节要点:

1,指针操作int类型数据。

2,指针操作float,char类型数据。



01. 指针操作int类型数据

其实这一小节主要是带大家回顾一下,因为前边我们已经讲了很多的指针栗子,并且这些例子都是基于int类型的数据。

01.1 指针的定义与使用

首先回顾一下指针变量是怎么进行定义与使用的。通过下边的一个例子就可以说明了(代码不复杂,只是加入了格式控制内容,所以较长)。

  • 栗子

#include<stdio.h>

void main(){
// 1,
int a = 21;
int *p = &a;
printf(" p: %d\n",p);
printf(" *p: %d\n",*p);
printf("\n");

// 2,
int *p1;
p1 = p;
printf(" p1: %d\n",p1);
printf(" *p1 %d\n",*p1);
printf("\n");

// 3,
*p1 = 32;
printf(" p1: %d\n",p1);
printf(" a: %d\n",a);
printf("\n");

}
  • 运行结果


C语言零基础入门-指针-03_数据类型

  • 解析

先看第一部分:

  • 首先定义了一个整形变量a=21,紧接着定义了一个指针变量p,并且给p赋予的初始值是a的地址。
  • 再然后我们输出了一下整型变量p,由于p就是一个地址变量,所以他存放的是a的地址,因此输出p的时候就输出的是地址。
  • 最后输出了一下​​*p​​,前边说过,​​*p​​的作用是得到地址p中存放的数据,因此,输出了数据21。
  • 地址图如下:

C语言零基础入门-指针-03_指针变量_02

再看第二部分:

  • 首先定义了一个指针变量p1,但是没有直接赋初始值。
  • 然后我们把p的内容给p1了,因为p中存放的是a的地址,所以此时p1中存放的也是a的地址。
  • 再然后输出一下p1,我们发现它的内容确实是a的地址。
  • 于是同样使用​​*p1​​输出一下看看p1所指向的地址中存放的数据是什么,还是a的21。
  • 地址图如下:

C语言零基础入门-指针-03_数据_03

C语言零基础入门-指针-03_数据_04

换一种地址图表示是这样的:

C语言零基础入门-指针-03_数据_03

C语言零基础入门-指针-03_数据_06

第三部分:

既然p1也已经指向了a的地址,所以我们就可以使用指针p1来修改a中的数据了。

最后输出一下a的值,发现的修改成功。

02.指针操作float,char类型数据。

02.1 指针定义详解

在前边我们只讲了int类型的指针,然后大家旧习惯用下边的定义方式。



int a = 23;
int *p = &a;

这里我们来分析一下 ​int *p = &a;​ 的含义。

  • 首先开始的类型 int 是怎么确定的呢?,其实它的类型是由a的类型确定的。也许你会有疑问,为什么这个int不是指​​*p​​的类型是int呢?
  • 你想吖,地址肯定都是整数了,怎么可能会是其他类型。

所以:指针变量最前边的类型,是指这个指针 所指向的地址中 存放的数据 的数据类型吖。

02.2 float型指针

所以啊,我们定义float类型的指针的时候,这个float指的是:实际的数据的数据类型。见下边的栗子:

栗子:


#include<stdio.h>

void main(){
float a = 21.0;
float *p = &a;

printf(" p: %d\n",p);
printf(" *p: %f\n",*p);

}

结果:


C语言零基础入门-指针-03_指针变量_07

分析:

C语言零基础入门-指针-03_数据_03

C语言零基础入门-指针-03_数据类型_09

  • 指针变量前边的数据类型实际上是:这个指针指向的地址 中存放的数据的 数据类型。
  • 指针变量的数据类型与其定义之时前边的数据类型无关,指针变量的数据类型恒为int。

02.3 char类型指针

刚才我们说了指针变量定义的时候,前边的数据类型其实是:这个指针所指向的地址中的数据的数据类型。

因此,定义char指针,他必须指向一个char类型的数据。


#include<stdio.h>

void main(){
char a = 'A';
char *p = &a;

printf(" p: %d\n",p);
printf(" *p: %c\n",*p);

}

结果:

C语言零基础入门-指针-03_数据_03

C语言零基础入门-指针-03_数据_11

这个就不解释了吧。原理与上边一样。

03. 结束

先到这里吧。

C语言零基础入门-指针-03_数据类型_12


标签:03,p1,int,数据类型,C语言,地址,printf,指针
From: https://blog.51cto.com/xiaoxiaojieya/5766905

相关文章