完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
指针是 C/C++ 功能最强大的工具之一,也是最危险的,因为他们允许执行对计算机不友好的操作,比如使用未经初始化的指针来访问内存或者试图释放同一个内存块两次。 本小节主要介绍指针的基本知识。 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。指针的四要素:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。 1.指针的类型 声明指向特定类型的指针,使用格式: typename * pointername; 例如: (1)int* ptr; //指针的类型是 int* (2)char* ptr; //指针的类型是 char* (3)int** ptr; //指针的类型是 int** (4)int (*ptr) [3]; //指针的类型是 int(*)[3] (5)int* (*ptr) [4]; //指针的类型是 int*(*)[4] 2.指针所指向的类型 当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容的当做什么类型来对待。 例如: (1)int *ptr; //指针所指向的类型是 int (2)char *ptr; //指针所指向的的类型是 char (3)int* *ptr; //指针所指向的的类型是 int* (4)int (*ptr) [3]; //指针所指向的的类型是 int()[3] (5)int* (*ptr) [4]; //指针所指向的的类型是 int*()[4] 3.指针的值 指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。 给指针赋值,可以对变量名应用&运算符,来获得被命名的内存的地址, new 运算符返回未命名的内存的地址。 例如: double * pn; double * pc; double bubble = 3.2; pn = &bubble; //把bubble的地址赋予pn pc = new char; //把新分配的内存(char类型)的地址赋予pc 4.指针本身所占据的内存区 指针本身占了多大的内存?你只要用使用 sizeof(指针的类型) 测试一下就知道了。在 32 位系统中,所有类型的指针的值都是一个 32 位整数。 |
|
相关推荐
|
|
2234 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2053 浏览 3 评论
4664 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2197 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2734 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 14:23 , Processed in 0.456537 second(s), Total 37, Slave 30 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号