首页 > 代码库 > 指针和数组及内存管理
指针和数组及内存管理
1. 指针和地址
TCPL 中给指针的定义是: A pointer is a group of cells (often two or four) that can hold an address .
int value = http://www.mamicode.com/10; int *pvalue = http://www.mamicode.com/&value;
上面这个语句的内存模型是:
注意: &(取地址)操作符只对内存中存在的对象起作用,如变量和数组类型。不能对表达式,常量和寄存器变量使用取地址操作。
*(析取)操作符应用于一个指针变量时,取得这个指针变量所指向的对象。
每个指针只能指向特定类型的数据类型(void *型的指针可以指向任意类型的对象,但是却无法析取自身)。
2. 指针和函数参数:
TCPL中有这样一段描述: Since C passes arguments to functions by value, there is no direct way for the called function to alter a variable in the calling function.
C语言函数参数的传递方式是传值的,所以不能直接在被调用函数中修改调用函数中的变量。下面所谓的通过传递指针的"传址"方式,实际上也是"传值"方式,不过这里传递的是一个地址的值而已。
下面通过一个实例来验证参数为指针的函数:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。