资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

C语言函数参数中地址符 c语言中取地址符

c语言中取地址符和*有什么区别?

不都是取地址。

创新互联公司是一家专注于成都网站制作、网站建设与策划设计,上饶网站建设哪家好?创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:上饶等地区。上饶做网站价格咨询:18982081108

1,符号含义不同:是取地址运算符,a为变量a的地址。

2,用法不同:声明中 int x;  x 是整型量。

语句中,x 是整型量x的地址。不是指针,才有。

语句中,x 是整型量x的值。

3,指向不同:*是指针运算符,*p为指针变量p所指向的存储单元中的内容。而指针变量p中一般只存放地址。* 表示指针,例如: int *p; -- p 是指针,指向整型量。

语句中,*p 表示指针指向的整型量的值。

语句中,p 表示指针指向的地址。

语句中,没有 p 形式,如果p是指针。

扩展资料

*空指针,*野指针

在函数内部对指针进行赋值操作后,在函数执行完毕后,该指针就成了一个空指针(变量从栈中弹出)。但是通过动态地址分配(堆空间)的指针不会有上述问题。

free(p)后释放内存的指针为野指针。

指针(pointer)是对数据对象或函数的一种引用。指针有多种用途,例如定义“传址调用”函数,它还可以实现动态数据结构,例如链表和树。

通常,管理大量数据的有效方法不是直接处理数据本身,而是使用指向数据的指针。例如,如果需要对大量的大型记录进行排序,对指向该记录的指针列表进行排序效率要比直接对记录排序高得多,因为这样无需在内存中移动数据。

类似地,如果需要把大型记录传入函数,传递指向该记录的指针会比直接传递记录本身更经济,即使函数不需要修改该记录。

指针代表了一个对象或函数的地址和类型。如果一个对象或函数具有 T 类型,那么指向它的指针就具有一个衍生出的指向 T 的指针类型(pointer to T)。

例如,如果 var 是一个 float 变量,那么表达式 var(其值是该 float 变量的地址)属于指向 float 的指针类型,按照 C 语言表达,就是 float* 类型。

指向任何 T 类型的指针也被简称为 T 指针(T point)。因此,var 中地址运算符会生成一个 float 指针。

因为 var 没有在内存中移动位置,所以表达式 var 是一个常量指针。然而,C 也允仵使用指针类型来定义变量。指针变量存储的是另一个对象或函数的地址。

我们后面会进一步讨论指向数组和函数的指针。首先,看看如何声明指向非数组对象的指针,语法如下:

类型 * [类型限定符列表] 名称 [= 初始化器];

在声明中,星号(*)表示“指向的指针”。标识符“名称”被声明为一个对象,其对象类型为“类型”,也就是“指向‘类型’的指针”。类型限定符为可选择项,可能包含 const、volatile 和 restrict 的任意组合。

参考资料

百度百科——指针

c语言函数参数列表中参数加取址符调用传地址反而会报错

c 语言函数 形参 列表 中 可以是普通变量 或指针变量,不允许 加取址符。

c++ 语言函数 形参 列表 中 加取址符 的参数 叫 “引用”,c 不支持。

------

函数 调用 的实参 类型 要与 形参对应,只有 形参 为 指针变量 的 实参 才可以是 地址。

void f(int x, int *y){};

int a,b;

int *p;

p=a;

调用

可以是 f(b,a);

可以是 f(b,p);

不可以是 f(b,a);

不可以是 f(b,a);

不可以是 f(b,a);

不可以是 f(b,p);

不可以是 f(b,p);

不可以是 f(b,p);

(但愿回答不被封。)

谁能解释一下参数中的取地址符。C语言

这不是C的语法,是C++的引用

也就是传入的参数L在这个函数中与调用的函数是同一个对象,在函数中修改了这个参数的值,在调用这个函数的外部L的值一样被修改

c语言函数参数里的取地址符号是什么意思

就是找到这个变量的内存地址,直接读写例如:scanf("%d",a);就是找到a的地址,把读入一个数写到a 的地址中在例如p=a;就是让指针p指向a的内存地址,这样直接对内存读写.有利于提高操作速度.


文章名称:C语言函数参数中地址符 c语言中取地址符
网站网址:http://cdkjz.cn/article/hppesc.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220