c语言中& *的用法

C语言中
&可以取变量的地址;
指针*也可以取地址;

两者的异同不是很清楚,
举例说明一下各自的用法和异同之处。
非常感谢
谢谢大家。

再问一下,哪有 vc编译器 使用教程下载,最好是视频的。

谢谢了

区别:

1.运算符性质不同。

&是一个位运算符。

&&是一个逻辑运算符。

2.作用不同。

&是将两个二进制的数逐位相与,结果是相与之后的结果。

&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。

3.用途限制。

&除了是一个位运算符,也是取地址符。

&&就是一个单纯的逻辑运算符,没有任何其他含义。

参考资料

&-百度百科

&&-百度百科

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-01-28
通常“&”被叫做引用或者符取地址,“*”叫做解引用符,他们俩是相反的过程
int i=1;
int * adr_i = &i; //将i的地址赋予int *型变量adr_i
//这里的adr_i的内容是一个内存地址,如0X0000DE56
printf("%d",*adr_i); //打印地址adr_i(0X0000DE56)所存储的变量内容
第2个回答  2009-01-28
&是直接取变量的地址,而*这个运算符之用在指针变量前,它得到的是指针变量所指向的值。
打个比方说你要找人,用&它告诉你的是那个人的地址,而*就直接带你找到那个人(前提是知道地址,也就是*这个运算符之用在指针变量前)
看个例子吧
int main()
{
int a[10]={0};
int **p,*q,t;

p=a;q=&a[0];
printf("%d %d",*p,q);
}
第3个回答  2009-01-28
&可以取变量的地址
*按地址取值

int a=3,*b;

b=&a; /*a的地址给b*/
printf("%d",*b); /*显示3,因为b里面是a的地址,按地址b取值,得3*/本回答被提问者采纳
第4个回答  2009-01-28
简单明了的给你解释
&是取地址,也就是取内存的地址编码,但当前面有类型时表示引用:
int a;
int *P=NULL;
p=&a; //取地址
int &b=a; //引用

*表示取地址里面所存的内容,但前面有类型时说明是定义地址:
int a;
int *p=&a; or
int *p=0x12345678; //实际应用时是不允许自己指定物理地址的

C语言*和&的用法
两种,一种乘法 一种用于表示指针的内容 &两种 一种位与运算,一种是取变量地址.三个函数只是形参不一样而已.f(int s) \/\/形参是s f(int *s)\/\/形参是指针 f(int &s) \/\/形参是引用 .

c语言中的*与&是什么意思?
C语言中,*和&分别表示指针和地址运算符。下面我将详细解释这两个符号的含义和用法:符号“*”在C语言中的含义 1. 指针符号:在C语言中,“*”常用来声明指针变量。指针是一个变量,其值为另一个变量的地址。通过指针,我们可以间接访问该地址中存储的数据。例如,`int *ptr;...

C语言指针操作符*和&
C语言中的指针操作符*和&是理解内存和变量地址的关键。*号,通常称为解引用操作符,用于访问指向的变量值,而&符号则是地址运算符,用于获取变量的内存地址。让我们通过实例来直观理解它们的用法。在处理变量a和b时,我们之前可能需要知道它们的地址才能进行操作,但这在C语言中可以通过定义一个指针p来...

c语言中& *的用法
&是一个位运算符。&&是一个逻辑运算符。2.作用不同。&是将两个二进制的数逐位相与,结果是相与之后的结果。&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。3.用途限制。&除了是一个位运算符,也是取地址符。&&就是一个单纯的逻辑运算符,没有...

C *&的用法
C语言中, * 和 & 是操作指针的符号。什么是 指针 呢,首先我们先要了解内存的概念。一台基本的电脑是由: 输入输出设备 (键盘、鼠标、显示屏,但是没有他们电脑也是可以工作的)、 CPU 、 内存 、 硬盘 、 显卡 组成的。我们知道,C语言的变量是存在内存里面的,而 内存被分为了好多个基本单位...

关于C语言里面的 '&','*',
如果是c程序不是c++,你的程序是错的,在cpp里是可以用&表示引用的,但在你这里用还是错的,因为上面的那句void Insit...是函数原形的声明,必须与函数定义时一样才行 int stacksize;}SqStack;void InitStack(SqStack &S);\/\/这个地方应该是void InitStack(SqStack *S);void InitStack(SqStack *...

数据结构 C语言 中参数传递的*与&用法
&,在c++中作为引用形参,c中是不能这样用的,数据结构中使用的类c写的,为了保持兼容性就是用了引用形参!!!**,是用的c中的双指针的问题,就是说指向指针的指针,即指针的内容在函数中可以被改变,如果用单指针指针的话,对指针的改变不会被带出函数!!这一点是难点,我以前也在这而迷惑了...

C语言中,使用数组时,什么时候前面加&,什么时候加*,什么时候什么都不用...
实参需要加&,表示取其地址,而形参加*,意思是定义一个指向数组元素的指针,用来指向形参的地址。当将数组名作为参数传递给形参时,实参只需要用数组名就可以,因为数组名就代表该数组的首地址,形参可以定义成*,也可以定义成[]的形式,定义成[]表示变量是数组类型。如果还有什么疑惑再问 ...

c语言中的星号“*”
在C语言中,星号“*”有多种用途,包括指针声明、解引用指针、乘法运算符和位运算符等。指针声明和解引用指针 在C语言中,星号“*”常用于声明指针变量和解引用指针。作为指针声明的一部分,它表示一个变量是存储另一个变量地址的指针。例如,“int *p;”表示p是一个...

&符号在C语言中全部用法
scanf中用作取地址 逻辑运算中&&为逻辑与 位运算中&为按位与

相似回答