c++变量、参数前加“*”什么意思?

在子程序中,这两个一样吗?
void a(int *b);
void c(int *d);
区别在哪
ps:之前学过易语言,知道3个属性“可空 参考 数组”这代表哪一个?

那在变量前加“*”又是什么意思哪?求解答
是void c(int d);

变量前加*号,只有在变量为指针情况下才是百合法的。

当*用于定义时,是标明该变量为指针类型。

指针变量是存放一个变量地址的变量,不同于其他类型变量,它是专门用来存放内存地址的,也称为地址变量。定义指针变量的一般形式为:类型说明符*变量名。

类型说明符表示指针变量所指向变量的数据类型;*表示这是一个指针变量;变量名表示定义的指针变量名,其值是一个地址,例如:char*p1;表示p1是一个指针变量,它的值是某个字符变量的地址。

扩展资料:

C语言中指 针初始化是指 给所定义的指 针变量赋初值。 指针变量在被创建后, 如果不被赋值, 他的缺省值是随机的 ,它的指向是不明确的, 这样的指针形象地称为“野指针”。野指针是很危险的, 容易造成程序出错, 且程序本身无法判断指针指向是否合法。

指针变量初始化时避免野指针的方法: 可以在指针定义后, 赋值NULL空值。上面两行代码的含义是, 指针变量p被赋值为空。虽然定义了一个指针变量, 但是它并不指向任何存储空间。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-04

变量前加*号,只有在变量为指针情况下才是合法的。

当*用于定义时,是标明该变量为指针类型。

除此以外,*的作用是取值。

C++中的指针可以理解为一个地址的值,*用于取值时就是取出改地址中存储的值。

比如下面的程序:

#include <iostream>
using namespace std;

int main()
{
    int a = 10;
    int *p;//这里的*是标识p的类型为整型指针(int*)类型。
    
    p=&a;//将p指向a的地址。
    
    cout << "*p = " << *p <<endl; //输出*p的值。这里的*就是取值的作用。
    
    a = 20;//改变a的值,也就是改变*p的值。
    cout << "*p = " << *p <<endl; //再次输出*p的值。这里的*同样是取值的作用。
    return 0;
}

该程序会输出:

*p = 10
*p = 20

可以看到*p的值是和a的值同步的,或者更准确的说,*p就是a。

第2个回答  推荐于2017-10-08
void a(int *b);
void c(int *d);
表明参数是个int型指针,也就是b和d指向的是int变量

void c(int d)中表明参数是个int变量追问

就是易语言中的参考吗?

变量前加“*”那?

追答

在C++中的参数传递中,数组都是以指针传递的,也就是带*的那个

追问

不是数组也可以加“*”,何况数组是“[ ]”与“*”没关系啊

追答

在void a(int *b)中
b可能是一个指向int型的指针
也可能是一个int型数组的
!!!在C++中的参数传递中,数组都是以指针传递的
即使是写成void a(int b[]),也是按数组方式传递的

追问

不是了,我的意思是:
int *a;和
int a;的区别
注意:第三次了!回答正题吧!对同一回答者追问超过3条后每次将消耗10个财富值

追答

对啊,你仔细听
int *a表示a是一个int型的指针,它指向一个int型的变量
int a表示a是一个int型的变量

本回答被提问者采纳
第3个回答  2011-09-03
void a(int *b);意思就是它的参数是一个指向int型的指针。
void c(int d);他的参数一个int型的变量。
第4个回答  2011-09-03
一个指针追问

额,这个知道,网上有,求具体答案

相似回答