C语言中“指针”和“指针变量”的区别是什么
2023-09-11 14:16:45 时间
比较严格的说法是这样的:
系统为每一个内存单元分配一个地址值,C/C++把这个地址值称为“指针”。如有int i=5;,存放变量i的内存单元的编号(地址)&i被称为指针。
“指针变量”则是存放前述“地址值”的变量,也可以表述为,“指针变量”是存放变量所占内存空间“首地址”的变量(因为一个变量通常要占用连续的多个字节空间)。比如在int i=5;后有一句int *p=&i;,就把i的指针&i赋给了int *型指针变量p,也就是说p中存入着&i。所以说指针变量是存放指针的变量。
有一个事实值得注意,那就是有不少资料和教科书并没有如上区分,而是认为“指针是指针变量的简称”,如对int *p=&i;的解释是:声明一个int *型指针p,并用变量i的地址初始化;而严格说应该是声明一个int *型指针变量p才对。所以有时看书要根据上下文理解实质,而不能过于拘泥于文字表述。
系统为每一个内存单元分配一个地址值,C/C++把这个地址值称为“指针”。如有int i=5;,存放变量i的内存单元的编号(地址)&i被称为指针。
“指针变量”则是存放前述“地址值”的变量,也可以表述为,“指针变量”是存放变量所占内存空间“首地址”的变量(因为一个变量通常要占用连续的多个字节空间)。比如在int i=5;后有一句int *p=&i;,就把i的指针&i赋给了int *型指针变量p,也就是说p中存入着&i。所以说指针变量是存放指针的变量。
有一个事实值得注意,那就是有不少资料和教科书并没有如上区分,而是认为“指针是指针变量的简称”,如对int *p=&i;的解释是:声明一个int *型指针p,并用变量i的地址初始化;而严格说应该是声明一个int *型指针变量p才对。所以有时看书要根据上下文理解实质,而不能过于拘泥于文字表述。
相关文章
- C语言程序设计100例之(44):分糖果
- 编程一一C语言的问题,cpu中的专用寄存器
- C语言控制台打印3D爱心图案
- 《C语言程序设计与实践(第2版)》——第2章 示例驱动的C语言语法元素 2.1变量与表达式
- 《C语言程序设计与实践(第2版)》——3.3 常量与变量
- 《C语言接口与实现:创建可重用软件的技术》一1.4 扩展阅读
- 《乐在C语言》一第2章 变量、常量与数据类型2.1 变量与常量
- Android JNI编程(三)——C语言指针的初步认识、指针变量、互换两个数、函数返回多个值
- C语言:字符串函数(2)
- C语言:操作符详解(2)
- 《C语言解惑》—— 2.8 一维数组更要特殊对待
- (第14列)C语言:结构体变量做函数参数
- 在VS2010下开发C语言程序
- 1034 有理数四则运算 (20 分)C语言
- C语言中的基础知识变量探讨