1

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

 1 year ago
source link: https://blog.51cto.com/u_15420562/5737218
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

&的用法:

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

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】初步了解指针_强制转换指针类型_02

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】初步了解指针_使用指针_03

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】初步了解指针_强制转换指针类型_04

Recommend

  • 26
    • blog.csdn.net 4 years ago
    • Cache

    初步了解 Graph Engine

    微软有很多非常小众的,但又很有趣的,但好像微软又不怎么样放在心上的技术。 Graph Engine 就是这样的典型。2015年5月21日,当时的微软亚洲研究院老大,沈向洋宣布微软发布了一款图计算引擎Graph Engine。 但实际上,...

  • 3
    • www.zenlife.tk 3 years ago
    • Cache

    Rust语言初步印象

    Rust语言初步印象2016-03-20这几天抽时间看了一下Rust语言,写一下初步印象吧。可能不太客观,因为我还一行实际Rust代码都还没写呢。这货太像C艹了,也确实做了不少改进,但是C艹已经积重难返了。做语言就是做设计。哪些该取,哪些该舍...

  • 8

    一文了解公链新秀 Solana 在 NFT 板块上的初步形态 WebX实验室 原创 2021-11-11 01:43 热度 193745 分享 微信扫一扫:分享

  • 6
    • www.yuexunjiang.me 2 years ago
    • Cache

    Python 多线程初步了解

    Python 多线程初步了解 2016-02-20 Saturday 这两天在写 Nada 的下载功能,遇到一个问题,在下载歌曲的时候整个界面都会卡住,必须等待下载完...

  • 5
    • www.taterli.com 2 years ago
    • Cache

    初步了解 STM32U5

    初步了解 STM32U5 STM32U5应该发布一段时间了,不过我也没买开发板,最近打开CubeMX,发现他已经做成Nucleo系统板了,也趁着有点时间就去了解一些这个系列,STM32发展了好多年,现在也有好几个系列了,基本都是英文缩写,L(Low Power),G...

  • 1

    咱们再来回顾一下 K8S 集群架构的组件,在网上找一张集群架构图说明一波1、master 组件apiserver集群的统一入口,restful 的方式,最后交给 etcd 存储shcheduler节点调度,选择 nod...

  • 1

    V2EX  ›  程序员 (纯主观)一个 javaver 用 go 语言的初步体验   voidmnwzp · 21 小时 10...

  • 6
    • sumsunsuns.github.io 2 years ago
    • Cache

    304号测试初步了解

    304号测试初步了解 - PsgQ BlogFile failed to load: http://cdn.mathjax.org/mathjax/latest/extensions/MathMenu.js 定义: 虚拟机是借助于操作系统对...

  • 1

    初步认识C语言(一) 精选 原创 wx64c21da76cf9a 2023-07-27 15:54:48...

  • 4
    • www.biaodianfu.com 7 months ago
    • Cache

    Go语言的初步了解与学习

    Go语言简介 Go语言,通常称为Golang,是由Google公司设计并开发的一种静态强类型、编译型语言。它在2009年首次公开发布,由Robert Griesemer、Rob Pike和Ken Thompson等知名计算机科学家共同设计。Go语言的设计目标是提供一种易于学习、高效执行且便于并发...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK