首页 > 其他分享 >指针你到底干了什么

指针你到底干了什么

时间:2024-07-30 20:55:46浏览次数:8  
标签:变量 到底 什么 运算符 访问 地址 类型 指针

一、定义指针变量

1、类型  *指针变量名;*是类型说明符。

2、int i = 100(直接访问);int *p; p = &i;*p = 100(间接访问);

   直接访问在被调函数中不能修改主调函数,所以创造了指针。

    指针变量指向地址i;

    整型:装整数的数据类型;指针:装地址的数据类型。

指针变量名,字母下划线开头不能是数字。

3、*和&运算符;

*是指针运算符文,&是取地址运算符。二者都是自右向左

如下图:&i是地址,*访问地址i内的内容;*p是访问地址i的内容,&拿地址;

&p是i的地址的地址,*这个访问地芷的地址。

所以:&和*在一起时候可以互相抵消,分手之后要注意变量类型。

4、内部实现逻辑

(1)通过指针变量中的值到内存空间中定位;
(2)从定位处开始向后偏移sizeof(基类型);
(3)将偏移好的那部分内存空间当作是一个基类型变量来看。

printf(“%lu\n”,sizeof(*p))算所占字节数。

所有类型的指针都占8个字节。

(5)小端和强制类型转换

二、数组

1、对指针进行加法运算,结果与其基类型,嗯对与基类型有关。

不是在原地址字节到下一个字节加一,加的是基类型sizeof的字节数。

2、*(a + i)或*(p+i)。其中a是数组名,p指向数组a的首地址。

a在这是a[0]的值,(*p)++就表示对数组首元素的值加一。

3、空指针

表示当前变量不能被进行指针访问。

#define NULL 0(不带参宏)

4、指针函数:

int    *函数名(定义变量),返回值也是指针。

二分查找法:

标签:变量,到底,什么,运算符,访问,地址,类型,指针
From: https://blog.csdn.net/xgshxjhs_/article/details/140778503

相关文章

  • TCP为什么需要四次挥手?
    tcp为什么需要四次挥手?答案有两个:1.将发送fin包的权限交给被动断开方的应用层去处理,也就是让程序员处理2.接第一个答案,应用层有了发送fin的权限,可以在发送fin前继续向对端发送消息为了搞清楚这个问题,我们先要了解四次挥手的过程:1.注意事项tcp四次挥手过程中没有客户......
  • 数据可视化在智慧园区中能够发挥什么作用?
    在智慧园区的建设和管理中,数据可视化技术正发挥着越来越重要的作用。通过数据可视化,园区管理者可以将大量复杂的数据转化为直观、易懂的图形和图表,从而更高效地监控和分析园区内的各种动态。数据可视化不仅能够实时展示园区内的人员流动、能耗情况、安全状况等关键指标,还可以通过......
  • 学完网络安全出去能做什么工作?(非常详细)零基础入门到精通,收藏这一篇就够了
    想要了解学完网络安全工程师就业班后,出去能做什么工作,这个时候会分甲方或是乙方,看个人更偏向哪个岗位。甲方指的是政府、海关、税务机构、高校及其他国有银行、商业银行,以及移动运营商(如中国移动、中国联通、中国电信)和一些大型央企国企,如电力、石油化工、烟草、轨道交通等......
  • 2024 年求职不易,有没有什么效率高的求职方法?
    对于很多打工人来说,今年过得并不容易,不管是打工还是求职,都感觉艰难许多。市场竞争力变大,让许多打工人都感受到了浓浓的“求职焦虑”。对于应届生而言,今年更是具有挑战性的一年,毕业人数量高达1179万人,又创历史新高,毕业生的增多,就意味着就业竞争压力更大…在这样的就业形势下,最......
  • 为什么 string.maketrans 在 Python 3.1 中不起作用?
    我是Python新手。怎么了这个在Python3.1中不起作用?fromstringimportmaketrans#Requiredtocallmaketransfunction.intab="aeiou"outtab="12345"trantab=maketrans(intab,outtab)str="thisisstringexample....wow!......
  • 为什么模型中的梯度参数全部都是None?
    这是我的模型。我的计划是制作一个融合相机和雷达图像的模型。classFusionNet(nn.Module):def__init__(self,radar_channels=1,camera_channels=3,n_classes=2,bilinear=False):super(FusionNet,self).__init__()self.radar_channels=radar_c......
  • 智能编码助手都在卷什么?投喂你的代码库,让【文心快码】帮你解读!
    越来越普遍的AI绘画、视频、小说等AIGC内容渗入生活的方方面面,超高的生成速度引发大量从业者为自己的饭碗而感到“压力山大”。在办公越来越讲究提效的当下,为了让自己的编码提速、提质,要么“鸡娃不如鸡自己”,硬生生练就键盘上的“佛山无影手”;要么“开点科技”,比如使用各路智......
  • 为什么在 CDS BETA 后出现 CDS API 格式错误?
    [对于上下文,我使用的是macOS和Python]安装cdsapi后,基本上按照官方网站的用户指南中的说明进行cdsapi设置:https://cds-beta.climate.copernicus.eu/how-to-api,并运行此示例代码进行数据访问,返回此错误{示例代码}importcdsapi客户端=cdsapi.Cli......
  • 【数据结构】你该在什么情况下使用 LindedList
    什么是Java的LinkedList?LinkedList是Java集合框架中的一个类,位于java.util包中。它实现了List接口,并且是一个双向链表结构,可以高效地进行插入和删除操作。主要特点双向链表:每个节点包含指向前一个节点和后一个节点的引用。动态大小:链表的长度可以根据需要动态......
  • shell和bash 你是不是傻傻分不清?什么又是shell脚本
    什么是shellShell在计算机科学中是指一个提供给用户使用操作系统功能的接口。这种接口可以是图形化的,也可以是基于文本的命令行接口。在Linux和Unix-like系统中,“shell”一词通常特指命令行接口(CommandLineInterface,CLI)。它允许用户通过键入命令来与操作系统交互。She......