C语言中的指针 &与*
2010-06-26 12:47
323 查看
1. 指针:
指针即地址;指针实现了变量的间接访问方式,变量的指针即变量的地址,存放变量地址的变量是指针变量;
& -- 取地址运算符;取变量的地址;
* -- 指针运算符(或称“间接访问”运算符);取指针变量(地址)的内容;
int i =3;
int *p; --定义指针变量p
p = &i; -- 等价于 *p = 3;
2. 指针与数组:
数组名即数组的起始地址,即指针(note:不过数组名代表的是一个固定地址,或者可以称为指针常量,不能再被赋值,例如a++等操作时没有意义的,当然作为实参传入函数后,在参数内可以完全当做指针变量来用);
int a[10];
int *p;
p = &a[0];
p = a;
*p = 1 ; 等价于 a[0] = 1;
p+i == a+i == &a[i];
*(p+i) == *(a+i) =a[i];
p[i] == *(a+i)
函数的形参与实参:
在定义函数时,函数名后面括弧中的变量名称为形参,在主调函数中调用一个函数时,函数名后括弧中的参数称为实参;只有发生函数调用时,形参才被分配内存单元,调用结束后形参的内存单元也被释放;实参变量对形参变量的数据传递是值传递,即单向传递,只由实参传给形参,不能形参传回给实参;
指针即地址;指针实现了变量的间接访问方式,变量的指针即变量的地址,存放变量地址的变量是指针变量;
& -- 取地址运算符;取变量的地址;
* -- 指针运算符(或称“间接访问”运算符);取指针变量(地址)的内容;
int i =3;
int *p; --定义指针变量p
p = &i; -- 等价于 *p = 3;
2. 指针与数组:
数组名即数组的起始地址,即指针(note:不过数组名代表的是一个固定地址,或者可以称为指针常量,不能再被赋值,例如a++等操作时没有意义的,当然作为实参传入函数后,在参数内可以完全当做指针变量来用);
int a[10];
int *p;
p = &a[0];
p = a;
*p = 1 ; 等价于 a[0] = 1;
p+i == a+i == &a[i];
*(p+i) == *(a+i) =a[i];
p[i] == *(a+i)
函数的形参与实参:
在定义函数时,函数名后面括弧中的变量名称为形参,在主调函数中调用一个函数时,函数名后括弧中的参数称为实参;只有发生函数调用时,形参才被分配内存单元,调用结束后形参的内存单元也被释放;实参变量对形参变量的数据传递是值传递,即单向传递,只由实参传给形参,不能形参传回给实参;
相关文章推荐
- 详解:C语言中的指针和p, p+1, *(p+1), *P+1, p[0], &p[0] 的含义
- c语言的 地址运算符 & 和 指针运算符* 的区别
- C语言——结构体与指针引用&结构体数组与指针引用
- 【zz】C语言中的空指针、空指针常量、NULL & 0
- 程序猿之--C语言细节13(二维数组和指针,&*a[i][0]的理解,数组1[e]和e[1]很可能你没见过)
- 深入理解C语言的指针*和引用&
- 【C语言】09 指针
- C语言中的空指针、空指针常量、NULL_&_0
- C语言-拾遗(2) 指针 && 声明
- c语言中指针中 -> 和 。的区别
- C语言中的空指针、空指针常量、NULL & 0
- 【C语言】第七篇·指针
- 深入理解C语言的指针*和引用&
- C语言/指针与数组&指针与函数
- 转载:C语言中的空指针、空指针常量、NULL & 0
- c语言实现单链表&二级指针在单链表的应用
- 程序员之--C语言细节13(二维数组和指针,&*a[i][0]的理解,数组1[e]和e[1]非常可能你没见过)
- 【C语言】11 指针和字符串
- 数组&指针&函数(转自C语言习题与解析 第3版 李春葆编著)
- C语言--定义为数组,声明为指针&定义为指针,声明为数组