首页 > 其他分享 >指针学习笔记

指针学习笔记

时间:2024-08-16 20:05:15浏览次数:10  
标签:变量 int 32 笔记 学习 地址 偏移 指针

变量 指针 地址

  • 地址是数据(变量)储存的位置,地址也是数据。
  • 存放地址的变量叫指针变量,简称指针

指针变量的大小

  • 在 \(32\) 位操作系统上地址用 \(32\) 位二进制整数表示,所以一个指针的大小为 \(4\) 字节;
  • 在 \(64\) 位操作系统上地址用 \(64\) 位二进制整数表示,所以一个指针的大小为 \(8\) 字节。

指针的类型

可以有不同类型的指针,对应的地址大小不同,例如可以有int类型的指针对应 \(32\) 位空间的地址,也可以有char类型的指针,同理对应 \(8\) 位空间的地址。

指针的声明与使用

对于变量

  • 指针的类型为类型名后加上一个*号,如int*
  • 取得一个变量的地址可以使用取地址符&
  • 如果要访问指针指向的空间使用*号;
int a=1;
int* aa=&a;
*aa=2;//和a=2一样的功能

对于结构体

  • 可以用.实现对结构体成员的访问,也可以用->形象「箭头」
struct note{
	int id;
	char w;
}a{1,'a'},b{2,'b'};
int main(){
	note* tmp=&a;
	(*tmp)=b;//a{2,b}
	(*tmp).id=1;//a{1,b}
	tmp->w='a';//a{1,a}
	return 0;
}

指针的偏移

指针可以和整数进行加减操作,作用是使其指向的地址偏移,具体偏移量与指针类型有关:如int型指针每加 \(1\) 指针偏移 \(32\) 位,加 \(2\) 偏移 \(2 \times 32 = 64\) 位;对于其他类型同理。

使用指针偏移访问数组

  • 数组是一块连续的储存空间,直接使用数组名可以得到数组的起始位置即arr[0]的地址。
  • 用指针访问数组中的元素时可以通过数组起始地址加上偏移量来访问。

\(to\) \(be\) \(continue……\)

标签:变量,int,32,笔记,学习,地址,偏移,指针
From: https://www.cnblogs.com/zrcdbx/p/18363555

相关文章

  • 【Vue2学习笔记】基础(持续更新)
    一、vue介绍什么是vue?Vue是一套用于构建用户界面的渐进式框架。Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层。vue特点1.采用组件式开发,提高代码复用率,且让代码更高维护2.声明式编码,让编码人员无需dom操作,提高开发效率3.使用虚拟机dom和优秀的di......
  • 嵌入式学习---DAY27:信号量、进程间的通信
    一、信号量信号量(semaphore)是操作系统用来解决并发中的互斥和同步问题的一种方法。信号量(个数)---反映的是资源的数量信号量的分类:信号无名量==》线程间通信             有名信号量==》进程间通信1.信号量的定义(为全局变量)sem_t sem......
  • 嵌入式学习 20(Linux高级编程——文件——misc)
     文件操作相关函数一、symlink函数intsymlink(constchar*oldpath,constchar*newpath);功能:创建一个指向oldpath文件的新的符号链接(软链接)文件。参数:•oldpath:被链接指向的原始文件的路径。•newpath:新创建的符号链接文件的路径。返回值:•成功时,返回0。......
  • C语言学习 --- 冒泡排序与二分查找
    冒泡排序 排序        从小到大顺序排 轮数        数据个数-1 每一次比较的次数      数据个数-1-当前的轮数      每次比较开始从下标为0的地方开始比较     轮数:0~<数据个数-1次数:0~<数......
  • 算法笔记——可持久化线段树
    维护历史值当要修改一个节点时,把跟他有关的线段树中所有节点舍弃,并建立新节点连接.代码如下:#include<bits/stdc++.h>usingnamespacestd;constintN=1e6+5;intn,m,a[N],root[N],top;structnode{ intl,r,val;}t[N*40];intclone(intx)//新建节点{ top++; t......
  • 无需刷机和复杂操作,一个软件,用学习机看小说!
    无需刷机和复杂操作,一个软件,用学习机看小说!经常听歌的朋友应该知道,在下载音乐时,有的软件会自动下载歌词文件-LRC文件一般的音乐播放器会自动识别在音频文件同目录下的LRC文件,LRC文件需要与音频文件同名而LRC文件的编辑格式和文本文件的编辑格式相近,只是在前面多了一串时间......
  • 统计学(贾俊平)学习笔记--第二章
    本章主要讲解了数据来源、调查方法、试验方法,以及数据抽样误差、非抽样误差,误差产生的原因等内容。该章内容较简单,不在仔细分析。这些也是数据来源的方法,大家可以了解。抽样误差(samplingerror)是由抽样的随机性引起的样本结果与总体真值之间的差异。影响抽样误差大小的因素......
  • 【python学习】为什么你应该放弃标准 JSON 库,转向更智能的 CommentJSON?
    在软件开发中,JSON是不可或缺的数据交换格式。然而,标准的json库并不支持注释,这使得开发者在处理复杂配置文件时感到束手束脚。本文将详细介绍commentjson库,它不仅能解析标准JSON格式,还支持带注释的JSON文件。通过对比commentjson和标准json库的用法及优势,帮助你......
  • 【python学习】深度解析LTP库:用Python轻松搞定中文NLP任务
    在自然语言处理(NLP)领域,处理中文文本一直是一个挑战。而LTP(LanguageTechnologyPlatform)是一个专为中文语言处理而开发的强大工具包,它能够帮助我们高效地完成各种NLP任务,如分词、词性标注、命名实体识别、依存句法分析、语义角色标注等。这篇博客将带你深入了解如何使用LTP......
  • C++八股文——内存管理(堆和栈的区别? C++内存分区? 内存泄漏?如何避免?什么是智能指针?有哪
    文章目录C++内存管理堆和栈的区别C++内存分区内存泄漏?如何避免?1、什么是内存泄露?2、内存泄漏的分类3、什么操作会导致内存泄露?4、如何防⽌内存泄露?5、智能指针有了解哪些?6、构造函数,析构函数要设为虚函数吗,为什么?什么是智能指针?有哪些种类?new和malloc有什么区别?d......