LinuxC——指针

news/2024/12/21 23:10:20/

指针在C语言中的应用是非常多的,而且也是很重要的。

一、什么是指针

指针是一个值为内存地址的变量。就像char类型变量的值为字符,int类型变量的值为整数。

在使用指针的时候,一定会用到这两个符号‘*’和 ‘&’,下面就首先介绍这两个运算符

间接运算符*

这个运算符也被称为解引用运算符,我们通过间接运算符找出存储在指针指向的某个内存中的值。

我们用一个例子来说明

ptr = &bah;
var = *ptr;

假设ptr是一个已经声明好的指针,我们把bah的地址赋给ptr,然后通过间接运算符来取出ptr指向的内存中的值,并且把这个值赋给var。

上面这两条语句和起来就相当于

var = bah;

当*后面跟一个指针名或地址时,*给出存储在指针指向地址上的值

址运算符&

如果希望得到一个变量的地址,就需要用到取址运算符。

&nures 表示nures的地址。

二、声明指针

声明指针的时候必须要指定指针指向的变量的类型,因为不同的变量类型占用不同的存储空间,一些指针操作需要知道操作对象的大小。

接下来看一些声明指针的例子

int *pi;      //pi是指向int类型变量的指针
char *pc;     //pc是指向char类型变量的指针
float *pf;    //pf是指向float类型变量的指针

类型说明符表明了指针所指向对象的类型,‘*’表明声明的变量是一个指针。

三、指针的应用

这里通过一个例子来说明

#include <stdio.h>int main()
{int a = 10;int *pi = &a;printf("before change a = %d\n", a);*pi += 10;printf("after change a = %d\n", a);return 0;
}

首先定义一个int类型的变量,并且给这个变量初始化。然后定义一个指向这个变量指针。

*pi += 10;就是将 *pi 加上10 再赋值给 *pi, 这里的操作同样是对a进行的操作。因为 pi是指向a这个变量的,pi中存放的就是a的地址,a的值是10,所以对pi进行操作就是对a进行的操作。

打印出改变之前和改变之后的值,看看其结果。


本篇博客只是简单的介绍了一下指针,与指针有关的详细应用会在以后写出来的。


http://www.ppmy.cn/news/690039.html

相关文章

HackMyvm(一)BAH持续更新

HackMyVM&#xff1a;第一更 BAH 文章目录 环境准备一、信息收集二、利用步骤三、权限提升 环境准备 环境地址&#xff1a;https://hackmyvm.eu/machines/machine.php?vmBah 一、信息收集 首先用Nmap扫描一下网段 nmap -sP 192.168.200.1-255 #扫网段我这里用的是校园网&a…

moya

https://juejin.im/post/5ac2cf34f265da23a1421483 https://juejin.im/post/5a69e9f9f265da3e290c6782 转载于:https://www.cnblogs.com/feng9exe/p/10964762.html

MOEA\D

1,Erpim的博客&#xff1a;多目标优化_学习笔记&#xff08;三&#xff09;MOEA/D https://blog.csdn.net/qq_35414569/article/details/79655400 2,GryffindorHermione博客&#xff1a;基于分解的多目标进化算法&#xff08;MOEA/D&#xff09; https://blog.csdn.net/sina…

demoa

一、数据类型 奥术大师多驱蚊器翁Asdasd 阿达洒水多 a 10; print(a)百度

Modulo

题目描述 给出10个整数&#xff0c;问这些整数%42后有多少个不同的余数。 输入格式 输入包含10个小于1000的非负整数&#xff0c;每行一个。 输出格式 输出它们%42后&#xff0c;有多少个不同的余数。 样例输入 1 2 3 4 5 6 7 8 9 10 样例输出 10 样例输入 42 84 252 420 840 …

关于MOMODA的隐私权政策

1、android.permission.CAMERA&#xff0c;用于用户扫描二维码 2、android.permission.READ_PHONE_STATE&#xff0c;访问当前手机使用的系统语言&#xff0c;因为App后期需要拓展多语言支持&#xff0c;所以需要访问当前的系统语言&#xff0c;用于适配语言和请求服务器后服务…

MONO在中国

大名鼎鼎的开源跨平台开发框架MONO &#xff0c;最近在中国越炒越火&#xff01;前段时间 Unity3D 让MONO逐渐进入大家的视线&#xff01;如今的Xamarin 更将要掀起一波浪潮&#xff01; Unity3D 被国内某些培训机构 带入了大众的视线&#xff01; Xamarin 如今也在某些地方悄…

DMA

DMA 控制器允许 Blackfin 或者外设指定数据传送操作&#xff0c;然后返回正常操作中。 DMA 控制器传送数据的过程独立于处理器的活动 。 DMA 控制器传送数据的方式有下面几种&#xff1a; l 存储器 <-> 存储器 &#xff08; MemDMA &#xff09;&#xff1b;…