关于C语言里面的 '&','*',

#include <stdio.h>
#include <stdlib.h>
typedef int SElemType;
#define STE 10
typedef struct
{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
void InitStack(SqStack &S);

void InitStack(SqStack *S)
{
S->base=(SElemType*)malloc(100*sizeof(SElemType));
S->top=S->base;
S->stacksize=STE;
}

void main()
{
SqStack B;
InitStack (&B);

}

就这个程序,里面的'*s',还有'&s',还有 s 我都快晕了....能解释一下吗?

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

void InitStack(SqStack *S)
{
S->base=(SElemType*)malloc(100*sizeof(SElemType));
S->top=S->base;
S->stacksize=STE;
}

&是取地址符号,*就是取指向变量的值;但在定义变量时*是做定义用的,表示是指针,比如
int a,*p;//这里的*号就是定义p是个指针。
p = &a ;//这里就是取 a的地址赋给p;也就是p变量放的是a的地址值
*p = 100;//这里就是把p的值对应的地址的那块内存赋上100;因为p的值是a的地址,所以实际上这里就是把a赋上100;之后a就等于100;
第2个回答  2010-11-09
* 是指针符号
& 是引用符号
两个符号的用法类似,都是将变量的首地址传到被调函数里
至于后面跟什么形参名都无所谓,s行,a,b,c,d都行
第3个回答  2010-11-09
void InitStack(SqStack &S);这个是函数声明,说明该函数的参数必须是地址形式。

void InitStack(SqStack *S)这个是函数定义,给出该函数的参数是指针形式(其实也是地址形式)。
第4个回答  2010-11-09
&在C++中有2个意思
一个是取址的意思,就是提取地址,在使用过程中主要是赋值运算,他只能给指针赋值,例如int a=0,*b;b=&a;就是把a 地址给了指针b
另一个是引用运算符的意思,在C++中于变量共同使用变量的地址空间例如:int a=10;int &b =a;就是对变量a的引用,当b 的值改变时a 的值也会相应的改变,即若在加上一句b=20;这时a的值也会成20本回答被提问者和网友采纳

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

c语言中关于*和&的意思理解
1. 在C语言中,`*` 操作符有两个主要用途:作为指针运算符和乘法运算符。2. `&` 操作符用于取地址,也可以用作按位与运算符和引用符号。3. 按位与运算符 `&` 用于二目运算,它对两个操作数的每一位进行 AND 运算。例如,`9 & 5` 的结果是 `1`,因为二进制表示中,`9` 的 `1` 位...

c语言中&是什么意思
c语言中&有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。一、何为c语言 C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设...

c语言中关于*和&的意思理解
用做修饰符时,*表示指针,&表示别名 int *p; \/\/ p是一个指针 int &a = b; \/\/a是b的别名(必须初始化)而用作运算符时,*表示取值,&表示取地址 int a = 1;int *p = &a; \/\/取a的地址并初始化指针p p = 2; \/\/修改p指向的值为2(a变成了2)最后说一下你所谓的*p = &a;这...

c语言中关于*和&的意思理解
三目是需要三个操作数的意思,比如:a=c>b?c:b;例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二...

&在c语言中是什么意思
在C语言中,"&"符号是取地址运算符。以下是关于"&"在C语言中的 一、基本含义 在C语言中,"&"符号用于获取变量的内存地址。当放在变量前面使用时,它表示该变量的地址。例如,如果一个变量名为`a`,那么`&a`就表示变量`a`的内存地址。二、作为取地址运算符的使用 当我们需要获取一个变量的地址...

关于C语言中 || 和 &&的用法
||就是逻辑里面的或,&&就是逻辑运算里面的与,if(a>1 || b>1){c = 0;} 上面只要a>1或者b>1,c就等于0,如果用&& ,就要同时都大于1咯

c语言有关于&&的问题
a、b的值并未改变,因此输出的前两个数应该没有疑义。c=!a&&b等价于c=(a==0)&&(b!=0)即将(a==0)&&(b!=0)的值赋给c。a=1≠0,(a==0)&&(b!=0)为假,值为0,将0赋给c,c的值为0 a、b的值并未改变,还是a=1,b=2,因此输出1,2,0 ...

c语言&&和||有什么区别?
逻辑运算符总共有3个,分别是"&&"、"||"和"!"。a && b,一假必假,结合性从左至右。||是逻辑或运算符,a || b,一真必真,结合性从左至右。&&和||在Java和PHP以及c#中都是逻辑操作符,也叫条件操作符。关于c语言的表达符号,可以到达内了解一下,达内时代科技集团有限公司(简称达内教育...

关于c语言中几个符号的用法。要简洁的说一下就好。①&② ^ ③|
你说的那三个是 一种运算符。1.先来说说 && || !这个是用在逻辑表达式中的,假如我要判断一个数字是不是偶数并且是不是5的倍数 我可以写成 if( i %2 == 0 && i%5 ==0 ) 2.那么 & | ^和上面的有什么差别呢?& | ^ 和上面的那三个的功能依次对应,只不过...

相似回答
大家正在搜