首页
学习
活动
专区
圈层
工具
发布

C++定义指针变量 | 使用指针变量

C++指针变量的定义 C++规定所有变量在使用前必须先定义,即指定其类型,在编译时按变量类型分配存储空间,对指针 变量必须将它定义为指针类型。...//定义整型变量 int i,j; //定义指针变量 int *point_num; 上述定义的指针变量point_num是指向整型数据的指针变量,也就是说,指针变量pointer_num只能用来指向整型数据...int就是指针变量的基类型,指针变量的基类型用来指定该指针变量可以指向的变量的类型。 ...即*不是指针变量名的一部分,在定义变量时在变量名前加一个*表示该变量是指针变量。 在C++中怎样使一个指针变量指向另一个变量呢?...在定义指针变量时必须指定基类型。 经典案例:C++定义指针变量。

3.5K2420

8.2 指针变量

01 怎么定义指针变量 1、一般形式 类型名 *指针变量名; 例子:int *point_1,*point_2; 左端的int是在定义指针变量时必须指定的“基类型”。...指针变量的基类型用来指定此指针变量可以指向的变量的类型。 2、指针变量前面的“*”表示该变量的类型为指针变量。...3、一个变量的指针的含义包括两个两个方面,一是以存储单元编号表示的地址,一是它指向的存储单元的数据类型(如int,char,float等)。...02 怎样引用指针变量 1、给指针变量赋值。如:p=&a;指针变量p的值是变量a的地址,p指向a。 2、引用指针变量指向的变量。...如已执行“p=&a”,即指针变量p指向了整型变量a,则printf(“%d”,*p);其作用是以整数形式输出指针变量p所指向的变量的值,即变量a的值。 3、引用指针变量的值。

5223229
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言中只读指针变量与只读变量指针

    只读指针变量和只读变量指针看着好像有点绕; 只读指针变量:意思是只读指针的变量 只读变量指针:只读变量的指针 本文的主角是const关键字 如果我们开发的时候,定义了某个变量,不想让别人修改时,就可以使用...首先定义两个整型变量 int a = 10; int b = 20; 普通的指针变量 先来看一下普通的指针变量: 我们定义一个普通的int类型的变量a,并初始化为10; 定义一个int类型的指针变量...那么打印出来p的值,就是a的值,10; //普通的指针变量 int *p = &a; printf("%d \n",*p);//10 //指向数值222 *p...也可以修改指针变量的地址; 只读指针变量 //只读指针变量 //这是一个const指针指向的int类型的变量 //const指针指向的整型变量 int *const cp1 = &a; *cp1...= 2;//值可以修改 *cp1 = &b; //cp1 = &b; //指针不能修改 值可以修改; 地址不能修改; 只读变量指针 //一个const指针指向的一个const整型的变量

    3.1K20

    CCPP 指针变量 | 数组指针 | 指针数组 | 野指针 | 空指针

    普通变量和指针变量 共性 PS: 可见这4个函数的汇编指令完全一致,无论是什么类型的指针变量,对指针变量的读写跟普通变量没有任何区别,所谓的指向只是描述指针变量的值时多少而已,就读写而言,指针变量跟普通变量没有任何区别...特性 普通变量的值常常用于数学计算,而指针变量常常用来定位内存。...普通变量可以不赋初值,但是指针变量的初值必须万分慎重,因为未来的*操纵会以这个初值为目标内存地址,往里面读写数据(可以才C primer plus中看到相应分析) 所以给指针变量赋值一定要是合法合理的内存地址...空指针和野指针 野指针:定义了一个指针变量,如果没有进行初始化,系统就会有可能随机赋值一个地址给这个指针变量,也就是说,这个指向指向一个未知的区域。...指针变量的+-运算 指针变量的加减运算:也就是做地址偏移,不同 的指针类型偏移的步长不同。

    2.3K30

    指针(3)---不同指针变量

    事实上, 各种简单类型例如整型int,字符型char等的指针变量事实上意义和用法都大同小异: 整型指针变量:用来存放整型变量的地址, int a = 100; int *p_a = &a; 字符指针变量..."; cahr *p_b = &b; 浮点指针变量:用来存放浮点型变量的地址, float c = 3,14; float *p_c = &c; 2.数组指针变量 指针数组是数组元素是指针的数组; 那么数组指针是什么呢...那么, 数组指针变量也就应该是:存放的应该是数组的地址,能够指向数组的指针变量。...数组指针变量的初始化 数值指针变量用来存放地址,如果我们需要获取数组的地址也就需要用到: &数组名 int arr[10] = {0}; &arr;//得到的就是数组的地址 我们存放数组的地址也就存放在指针数组变量中...3.函数指针变量 数组指针变量是用来存放数组的地址; 函数指针变量是用来存放函数的地址。 那么函数的地址是什么? 可以看到add与&add的地址是同一个,这也就说明函数的地址就是函数名的地址。

    26510

    CCPP 指针变量 | 数组指针 | 指针数组 | 野指针 | 空指针

    普通变量和指针变量 共性 PS: 可见这4个函数的汇编指令完全一致,无论是什么类型的指针变量,对指针变量的读写跟普通变量没有任何区别,所谓的指向只是描述指针变量的值时多少而已,就读写而言,指针变量跟普通变量没有任何区别...特性 普通变量的值常常用于数学计算,而指针变量常常用来定位内存。...普通变量可以不赋初值,但是指针变量的初值必须万分慎重,因为未来的*操纵会以这个初值为目标内存地址,往里面读写数据(可以才C primer plus中看到相应分析) 所以给指针变量赋值一定要是合法合理的内存地址...空指针和野指针 野指针:定义了一个指针变量,如果没有进行初始化,系统就会有可能随机赋值一个地址给这个指针变量,也就是说,这个指向指向一个未知的区域。...指针变量的+-运算 指针变量的加减运算:也就是做地址偏移,不同 的指针类型偏移的步长不同。

    2.2K20

    7.1 什么是指针和指针变量

    一、指针是什么 解释:由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元,因此,将地址形象化地称为“指针” 二、指针变量 解释:一个变量的地址称为该变量的“指针”,如果有一个变量专门用来存放另一个变量的地址...,则称它为“”指针变量” 注意:指针变量的值是地址 (1)定义指针变量 一般形式 类型名 *指针变量名 注意: ①指针变量前面的“*”表示该变量的类型为指针型变量...②在定义指针变量时必须指定基类型 ③指针变量中只能存放地址,不要将一个整数赋给一个指针变量 例子: ?...(2)指针变量的引用 在引用指针变量时,可能有三种情况 ①给指针变量赋值 ②引用指针变量指向的变量 ③引用指针变量的值 例子: ?...注意:要熟练掌握两个有关的运算符 ① & 取地址运算符 ② * 指针运算符 (3)指针变量作函数参数 函数的参数不仅可以是整型、浮点型 、字符型等数据,还可以是指针类型。

    1.2K3029

    【C语言指针超详解(一)】--指针变量和地址,指针变量类型的意义,指针运算

    ,这种变量就是用来存放地址的 ,存放在指针变量中的值都会理解为地址。...如果指针变量是用来存放地址的,那么指针变量的大小就得是4个字节的空间才可以,同理,如果是64位机器,指针变量的大小就是8个字节。...结论: 32位平台下地址是32个bit位,指针变量的大小是4个字节 64位平台下地址是64个bit位,指针变量的大小是8个字节 指针变量的大小和类型无关,只要是指针类型的变量,在相同的平台下,大小都是相同的...三.指针变量类型的意义 --在上面的学习中我们知道了指针变量的大小和类型无关,那为什么还有各种各样的指针类型呢,其实指针类型是有其特殊意义的,我们接着往下看把。...char*类型的指针变量。

    42710

    C:指针学习-指针变量—学习笔记

    前言: 本篇文章涉及字符指针变量,数组指针变量,函数指针变量,以及函数指针数组。...* pc = &ch;//取出ch的地址放到ch里 *pc = 'l'; return 0; } pc为字符指针变量,指针变量是变量,存放的是字符,类型是char* 关于字符指针变量还有另外一种用法...在介绍数组指针变量之前,我们需要先提一下字符指针变量,整型指针变量,那这哥两是什么意思呢?...总结:数组指针变量是用来存放数组的地址,数组的地址通过&数组名获得,将数组地址存起来放到数组指针变量中,数组指针变量的类型就是( 数组元素类型(*)[元素个数] ) 2.2 数组指针变量初始化 关于数组指针变量的初始化有两种方式...4、函数指针数组 数组是用来存放相同类型数据的存储空间,在前面数组与指针这一篇中我们也介绍了指针数组的概念,如: int * arr[10];//数组中的每个元素是int* 那要是把函数的地址存放到一个数组中

    23910

    const修饰指针变量

    1.const修饰普通变量 int a = 0; a = 2;//此时变量a可以被修改 const int b = 0; b = 2;//此时b不能被修改 上述代码中n是不能被修改的,其实a本质是变量,...int main() { const int a = 0; int*p = &a; *p = 1; printf("%d\n", a); } 2.const修饰指针变量 首先我们先去分p和*p的含义...*p是p指向的空间,即a(通过p找到a) const修饰指针变量时分为两种情况,可以简单地区分为const关键词在 * 的左边或右边 //在*左边 const int* p int const* p...//在*的右边 int* const p const放在*左边时限制*p,不能通过指针变量p来修改p指向空间的内容;*p = 2 err  但p = &b 是正确的,因为p不受限制 int a = 1...b的空间,a的值未得到改变但*p的值得到了改变 const放在*右边时限制p变量,p变量不能被修改,没办法指向其他变量,但还可以通过p来修改p所指向的对象的内容 int a = 1; int b = 2

    9610

    #C语言——学习攻略:深挖指针路线(四)--字符指针变量,数组指针变量,二维数组传参的本质,函数指针变量,函数指针数组

    数组指针变量 2.1 数组指针变量定义 --在上一篇博客,学习了指针数组,数组存放的是指针;那下面也进行类比: 整型指针变量:int* p,存放的整型变量地址,指向整型数据; 字符指针变量...;char* p,存放的字符型变量地址(字符串,存放的是首字符地址),指向字符型数据 --可知,数组指针存放的是数组地址,指向数组数据; --下面对数据指针变量进行辨析: 1. int* p1[10]...(必须确保加上(),使p先于和*结合) 2.2 数组指针变量的初始化 --数组指针变量用来存放数组地址,那么初始化就要获取数组地址:&数组名。...函数指针变量 4.1 函数指针变量的创建 --同样类比其他指针,函数指针就是存放函数地址的,通过地址调用函数,那函数地址怎么获取呢?...#C语言——学习攻略:深挖指针路线(一)--指针变量、地址、意义与指针运算 2. #C语言——学习攻略:深挖指针路线(二)--const修饰、野指针分析、断言和指针的作用 3.

    9300

    【C语言指针超详解(四)】--字符指针变量,数组指针变量,二维数组传参的本质,函数指针变量,函数指针数组,转移表

    一.字符指针变量 1.1--字符指针变量的使用 --在指针的类型中我们知道有一种指针类型为字符指针 char*,那么我们是怎样去使用它的呢?...二.数组指针变量 2.1--数组指针变量的定义 --之前我们学习了指针数组,指针数组是一种数组,数组中存放的是地址(指针)。那么这里的数组指针肯定就是一个指针变量了。...我们已经非常熟悉整型指针变量和浮点型指针变量,那么我们利用这两种变量来看看数组指针变量把: 整形指针变量: int * pint; 存放的是整形变量的地址,能够指向整形数据的指针。...浮点型指针变量: float * pf; 存放浮点型变量的地址,能够指向浮点型数据的指针。​​​ 那么数组指针变量应该就是:存放的是数组的地址,能够指向数组的指针变量。...四.函数指针变量 4.1--函数指针变量的创建 --根据前面学习的整型指针,数组指针,我们可以类比出来: 函数指针变量应该是用来存放函数地址的,未来可以通过地址调用函数。

    21410

    【C语言指针四】数组指针变量、二维数组传参本质、函数指针变量、函数指针数组

    1.1什么是数组指针变量 什么是数组指针呢?...顾名思义就是指向数组的指针,其变量是指针变量。数组指针变量存放的是数组的地址。 这里我们着重对比一下对比:指针数组是元素为指针的数组,数组中存放的是地址(指针)。 老办法,照猫画虎!!...• 整形指针变量: int * pint; 存放的是整形变量的地址,能够指向 整形 数据的指针。 • 浮点型指针变量: float * pf; 存放浮点型变量的地址,能够指向浮点 型数据的指针。...⼀个指针变量,然后指针指向的是一个大小为10个整型的数组。...如下图所示: 于是,我们得到结论: 二维数组传参,形参的部分可以写成数组,也可以写成指针形式 三、函数指针变量 3.1 函数指针变量的创建 什么是函数指针变量呢 函数指针变量就是用来存放函数地址的

    8010

    golang 利用指针导出变量

    golang 利用指针导出变量 1 golang中的指针类型:unsafe.Pointer & uintptr unsafe.Pointer 类似 C 的 void *,在golang中是用于各种指针相互转换的桥梁...unsafe.Pointer 用于转换不同类型指针,不可以参与指针运算 uintptr 用于指针运算,GC会自动回收 uintptr 类型的目标 Go语言是强类型语言,指针也是具有明确类型的对象,进行严格类型检查..." ) func main() { var v *p.V = new(p.V) // 分配一段内存并返回一个指针,v是类型为p.V的一个指针 var i *int32 = (*int32...)(unsafe.Pointer(v)) // 将指针v转成通用指针,再转成int32指针,不能直接将v转成int32类型的指针 *i = int32(98) // 改变v的私有成员i的值...每个成员类型都有对齐值,可以用 unsafe.Alignof 方法来计算,如 unsafe.Alignof(w.b) 可以得到b在w中的对齐值。

    93970

    C语言指针深入详解(一):内存和地址、指针变量和地址、指针变量类型的意义、指针运算

    内存 假设有一栋宿舍楼,把你放在楼里,楼上有100个房间,但是房间没有编号,你的一个朋友来找你玩,如果想找到你,就得挨个房子去找,这样效率很低,但是我们如果根据楼层和楼层的房间的情况,给每个房间编上号,如:...整型变量占用4个字节,我们只要知道了第一个字节地址,顺藤摸瓜访问到4个字节的数据也是可 行的。 (二)指针变量和解引用操作符(*) 我将分为指针变量、拆分指针类型、解引用操作符三部分来介绍。...,这种变量就是用来存放地址的,存放在指针变量中的值都会理解为地址。...如果指针变量是用来存放地址的,那么指针变量的大小就得是4个字节的空间才可以。...三、指针变量类型的意义 指针变量的大小和类型无关,只要是指针变量,在同一个平台下,大小都是一样的。那既然这样,为什么指针还要有这么多各种各样的指针类型嘞?是多此一举吗?

    38521

    8.2 C语言指针变量

    01怎么定义指针变量 1、一般形式 类型名 *指针变量名; 例子:int *point_1,*point_2; 左端的int是在定义指针变量时必须指定的“基类型”。...指针变量的基类型用来指定此指针变量可以指向的变量的类型。 2、指针变量前面的“*”表示该变量的类型为指针变量。...3、一个变量的指针的含义包括两个两个方面,一是以存储单元编号表示的地址,一是它指向的存储单元的数据类型(如int,char,float等)。...02怎样引用指针变量 1、给指针变量赋值。如:p=&a;指针变量p的值是变量a的地址,p指向a。 2、引用指针变量指向的变量。...如已执行“p=&a”,即指针变量p指向了整型变量a,则printf(“%d”,*p);其作用是以整数形式输出指针变量p所指向的变量的值,即变量a的值。 3、引用指针变量的值。

    1.6K2625

    C语言|图解指针变量

    = NULL; 图解: 1.1 己址和己空间 指针变量也是一个变量,对应一块内存空间,对应一个内存地址,指针名就是己址。...1.2 己值、他址、他空间 指针变量的值就是其指向的空间的地址,指向的地址的空间大小就是指针变量指向类型的大小。...1.3 声明与初始化 当声明一个指针变量,没有初始化时,指针变量只获得了其自身的内存空间,而其指向还没有确定,此时指针变量解引用做左值是非法操作。...,另一个函数(如下例的stackFrame_reuse())执行时,该空间会被stackFrame_reuse()重复使用,a所使用的空间将不复存在,所以当一个指针变量指向局部变量的内存空间时,其地址值传递给主调函数时...: 以下图示a表示计算机内存,b表示一个函数调用时在栈(stack)上开辟的栈帧空间: 2 指针变量与数组名 数组名在一定的上下文中会转换为指向数组首元素的地址,以方便指针的算术运算,如 #include

    2K20
    领券