首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

C++指针变量的定义 C++规定所有变量在使用前必须先定义,即指定其类型,在编译时按变量类型分配存储空间,对指针 变量必须将它定义为指针类型。...//定义整型变量 int i,j; //定义指针变量 int *point_num; 上述定义的指针变量point_num是指向整型数据的指针变量,也就是说,指针变量pointer_num只能用来指向整型数据...int就是指针变量的基类型,指针变量的基类型用来指定该指针变量可以指向的变量的类型。 ...即*不是指针变量名的一部分,在定义变量时在变量名前加一个*表示该变量指针变量。 在C++中怎样使一个指针变量指向另一个变量呢?...只需要把被指向的变量的地址赋给指针变量即可: point_num1=&i; 在C++中,一般编译系统为每一个指针变量分配4个字节的存储单元,用来存放变量的地址, 在定义指针变量时要注意:  不能用一个整数给一个指针变量赋初值

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

常量指针指针常量的详解一样吗_指针是常量还是变量

说一下 常量指针指针常量 的区别。 常量指针   指向常量的指针,也就是说指针指向的对象是常量,指向的常量不能修改。指针不是一个常量, 可以把指针指向别一个常量。...不可以对指向的内容做修改: *p = 3; // 错误,常量指针不变的常量,如果指针指向了某个地址,在解引用后不能去修改指针变量的值 指针常量   指针指向的地址不可以改变,地址的内容可以通过指针改变...指针常量在定义时必须赋值。...不能对指向的地址进行修改: p = &b; // 错误,指针指向的地址不可以改变,地址的内容可以通过指针改变 我们也可以这样记 const 在谁前边谁就不可以修改: 常量指针 : const 在指针前边...指针常量 : const 在变量前边,我们就不可以修改指针的地址。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

58120

8.2 指针变量

01 怎么定义指针变量 1、一般形式 类型名 *指针变量名; 例子:int *point_1,*point_2; 左端的int是在定义指针变量时必须指定的“基类型”。...指针变量的基类型用来指定此指针变量可以指向的变量的类型。 2、指针变量前面的“*”表示该变量的类型为指针变量。...4、指向整型数据的指针类型表示为“int”,读作“指向int的指针”或简称“int指针”。 5、指针变量中只能存放地址(指针),不要将一个整数赋给一个指针变量。...02 怎样引用指针变量 1、给指针变量赋值。如:p=&a;指针变量p的值是变量a的地址,p指向a。 2、引用指针变量指向的变量。...如已执行“p=&a”,即指针变量p指向了整型变量a,则printf(“%d”,*p);其作用是以整数形式输出指针变量p所指向的变量的值,即变量a的值。 3、引用指针变量的值。

3783229

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

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

1.7K30

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整型的变量

2.4K20

指针详解(二级指针指针数组和数组指针、字符指针、二维数组传参、函数指针变量)(二)

一、二级指针 问:指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪里?...答:二级指针,用来存放以及指针变量的地址 int main() { int a = 10; int *p = &a;//取出a的地址 //p是指针变量,一级指针 int* *...pp = &p; //int*说明pp指向的对象的类型是int* // *说明pp是变量,pp是二级指针,用来存放以及指针变量的地址 //指针变量也是变量 int*** ppp = &pp;/...浮点型指针变量: float * pf; 存放浮点型变量的地址,能够指向浮点型数据的指针。 那数组指针变量应该是:存放的应该是数组的地址,能够指向数组的指针变量。...如果我们要将函数的地址存放起来,就得创建函数指针变量咯,函数指针变量的写法其实和数组指针非常类似。

13510

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

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

1.6K20

7.1 什么是指针指针变量

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

9363029

关于变量指针、别名(引用)和指针指针

今天蛋疼的就写一下这些东西的区别,变量永远是最简单的没有什么技术含量,那么另外一个比较简单的就是别名了,其实个人感觉这个东西完全可以看作是一个人的“小名”,只是对同一个变量多了一个称呼而已,指向的数据和地址是和原变量完全一致的...,并且用&进行取地址操作的得到的地址和原变量的地址是完全一致的(因而在对指针进行赋值的时候如果直接对指针地址操作则需要对变量或者别名使用&进行取地址运算,如果要直接赋值则需要使用*p=进行赋值)。...也就是说可以将pointer看成一个内存地址在这个地址中保存的是另外一个数据的地址,当存在*的时候表示取该地址存取的内容,否则则是取这个变量保存的地址。...ivalB=20; //普通变量 int *ppiA=NULL; //指针 int *ppiB=NULL; //指针 int **ppi=NULL; //指针指针...//指针赋值 ppi=&ppiA; //指针指针赋值 cout< <"变量、别名、指针指针指针的关系:"<

1.3K30

指针&& 帧指针详解

另外,C语言的地址操作符"&"被应用到一个局部变量上时,我们就需要为该变量生成一个地址,即为变量的地址指针分配一空间。最后,B函数会使用栈来保存调用任何其他函数的参数。...14 movl -4(%ebp),%ecx # 然后把局部变量c中的内容放到这个指针所指位置处。...前两行用来设置保存调用者的帧指针和设置本函数的栈帧指针,第5行通过把栈指针esp下移4字节为局部变量c分配空间。6~15行是swap函数的主体部分。...第19~21行是main()函数的设置部分,在保存和重新设置帧指针之后,main()为局部变量a和b在栈中分配了空间。第22~23行为这两个局部变量赋值。...因此为了达到修改的目的就需要向函数传递变量指针(即变量的地址)。

7.6K30

golang 利用指针导出变量

golang 利用指针导出变量 1 golang中的指针类型:unsafe.Pointer & uintptr unsafe.Pointer 类似 C 的 void *,在golang中是用于各种指针相互转换的桥梁...uintptr 是golang的内置类型,能存储指针的整型,uintptr 的底层类型是 int,和 unsafe.Pointer 可相互转换。...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的值

77970

8.2 C语言指针变量

01怎么定义指针变量 1、一般形式 类型名 *指针变量名; 例子:int *point_1,*point_2; 左端的int是在定义指针变量时必须指定的“基类型”。...指针变量的基类型用来指定此指针变量可以指向的变量的类型。 2、指针变量前面的“*”表示该变量的类型为指针变量。...4、指向整型数据的指针类型表示为“int”,读作“指向int的指针”或简称“int指针”。 5、指针变量中只能存放地址(指针),不要将一个整数赋给一个指针变量。...02怎样引用指针变量 1、给指针变量赋值。如:p=&a;指针变量p的值是变量a的地址,p指向a。 2、引用指针变量指向的变量。...如已执行“p=&a”,即指针变量p指向了整型变量a,则printf(“%d”,*p);其作用是以整数形式输出指针变量p所指向的变量的值,即变量a的值。 3、引用指针变量的值。

1.3K2625

C语言|图解指针变量

= NULL; 图解: 1.1 己址和己空间 指针变量也是一个变量,对应一块内存空间,对应一个内存地址,指针名就是己址。...1.2 己值、他址、他空间 指针变量的值就是其指向的空间的地址,指向的地址的空间大小就是指针变量指向类型的大小。...1.3 声明与初始化 当声明一个指针变量,没有初始化时,指针变量只获得了其自身的内存空间,而其指向还没有确定,此时指针变量解引用做左值是非法操作。...,另一个函数(如下例的stackFrame_reuse())执行时,该空间会被stackFrame_reuse()重复使用,a所使用的空间将不复存在,所以当一个指针变量指向局部变量的内存空间时,其地址值传递给主调函数时...#include #include int g(int **iptr) { // 当试图修改主调函数的一级指针变量时,被调函数的参数是一个二级指针 if

1.5K20

初识指针指针指针变量、如何理解地址、指针类型的意义、void*指针、野指针、空指针)(笔记)

一、指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。...解引用 return 0; } 二、指针指针变量 指针:地址 指针变量变量-存放地址 指针变量用来存放地址的,指针变量并不完全等同指针..., 但口头上 指针 一般是 指针变量 2.1指针变量的大小 1.指针变量是专门用来存放地址的,指针变量的大小取决于一个地址存放需要多大空间 32位机器上:地址线32根,地址的二进制序列就是32bit...七、空指针指针是一个特殊的数据类型,它的值定义为NULL。空指针不同于NULL的整数表示,它是一个指针变量的特殊值,表示该指针变量不指向任何有效的内存地址。...使用空指针进行解引用操作会导致程序崩溃,因为没有任何有效的内存地址可供访问。在C语言中,空指针主要用于表示指针变量没有指向任何有效的内存地址,例如未初始化的指针变量或已释放的内存块。

7210

指针数组和数组指针详解

单从字面上来看似乎很难分清它们是什么,我们先来看看指针数组和数组指针的定义。...指针数组:数组类型 *数组名[数组长度]; 例:int *parr[5]; 数组指针:类型名 (*指针名)[数组长度]; 例:int (*parr)[5]; 现在我们再来通过上面的定义来分析一下指针数组和数组指针...元素分别是parr[0],parr[1]...parr[4],相当于定义了5个整形指针变量。所以parr就是数组元素是指针的数组,本质为数组。...int (*parr)[5];parr先与*结合,形成一个指针,该指针指向的是有5个整形元素的素组,parr就是指向数组元素地址的指针,本质为指针。...下面接着分析数组指针指针数组是如何访问二维数组的,先看数组指针的访问方式。

40820

指针数组与数组指针详解

指针数组与数组指针详解 1.什么是指针数组和数组指针?...指针数组:指针数组可以说成是”指针的数组”,首先这个变量是一个数组,其次,”指针”修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系统中,指针占四个字节。...数组指针:数组指针可以说成是”数组的指针”,首先这个变量是一个指针,其次,”数组”修饰这个指针,意思是说这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址。...根据上面的解释,可以了解到指针数组和数组指针的区别,因为二者根本就是种类型的变量。 2.指针数组和数组指针到底是什么?...pa)[4],原来指针数组和数组指针的形成的根本原因就是运算符的优先级问题,所以定义变量是一定要注意这个问题,否则定义变量会有根本性差别!

42020

详解 常量指针指针常量

说一下 常量指针指针常量 的区别。 常量指针   指向常量的指针,也就是说指针指向的对象是常量,指向的常量不能修改。指针不是一个常量, 可以把指针指向别一个常量。...常量指针是我们最常用的,一般声明形式如下: const int *p; int const *p; 例: int a(1), b(3); const int *...不可以对指向的内容做修改: *p = 3; // 错误 指针常量   指针指向的地址不可以改变,地址的内容可以通过指针改变。指针常量在定义时必须赋值。...不能对指向的地址进行修改: p = &b; // 错误 我们也可以这样记 const 在谁前边谁就不可以修改: 常量指针 : const 在指针前边,我们就不可以修改指针。...指针常量 : const 在变量前边,我们就不可以修改指针的地址。

1.2K70

C语言之指针变量

一、指针变量 /* 1、定义 普通变量: 数据类型 变量名称 指针变量: 数据类型 * 变量名称; 2、指针变量是什么类型,那么将来就只能保存什么类型变量的地址..., 例如 指针变量是int类型, 那么将来就只能保存int类型变量的地址 3、* : 标示这是一个指针变量,代表访问指针变量指向的那一块存储空间 4、指针变量只能存储地址...:野指针值没有赋值的指针 int *p3 = NULL; //*p3 = 12; //这样运行会挂 // 5、指针变量变量类型要一致,即int类型指针只能存储int类型的变量的地址...a4是常量指针,指向整型的常量指针,即指针是常量 //(可以间接修改指向变量的值,但是不可重新赋值新变量地址) const int * const a5; //a5是指向整型常量的常量指针(...3、常量指针:可以间接修改指向变量的值,但是不能重新赋值新变量地址   4、指向常量的常量指针:有2个const修改,既不能间接修改变量的值,也不可重新赋值新变量地址 验证示例代码: //1、指针变量

2K30

【C++】C++ 引用详解 ④ ( 函数返回 静态变量 全局变量 的 引用 指针 )

一、函数返回 静态变量 / 全局变量 的 引用 / 指针 1、函数返回局部变量引用或指针无意义 上一篇博客 【C++】C++ 引用详解 ③ ( 函数返回值不能是 “ 局部变量 “ 的引用或指针 | 函数内的...“ 局部变量 “ 的引用或指针做函数返回值无意义 ) 得出如下结论 : 函数的返回值 是 “ 局部变量 “ 的 引用 或 指针 时 , 是无意义的 ; 函数 执行完毕后 , 该 函数对应的 栈内存 会被回收..., 相应的 局部变量 地址 也有没有了意义 , 此时 , 再持有一个 函数返回的 没有意义的 引用 / 指针 , 取出的值是随机无意义的值 ; 2、函数返回静态变量/全局变量的引用或指针 函数 返回的是..." 静态变量 " 或 " 全局变量 " 的 引用 / 指针 时 , 是可以的 ; 如果 函数 的 返回值 是 静态变量 或 全局变量 的引用 , 这两种变量 一旦分配内存后 , 在整个程序的生命周期中..., 该内存都不会被回收 , 返回它们的 引用 / 指针 , 可以正常访问 对应 内存中的数据 ; 3、代码示例 - 函数返回静态变量/全局变量的引用或指针 在下面的代码中 , fun 函数作为 参照

14730
领券