C语言中,指针中的*是什么意思?

int *piRand=0; /*例如我声明了一个指针*/
piRand=(int*)malloc(4*sizeof(int)); /*再将它指向动态内存分配空间*/
/*piRand[]是一个指针,它存的是地址.为什么可以当数组使用?*/
for(i=0;i<4;i++)
{
piRand[i]=rand();
}

那么*是什么意思呢?为什么加了*就程序出错?
for(i=0;i<4;i++)
{
piRand[i]=*rand();
}

在声明int *piRand中
*表示这个变量是int类型的指针
在声明之外
*可以理解成一个运算符 或者一个函数
*和&是一对逆运算
&的意思是读一个变量的地址
比如你声明了int a;&a是a的地址可能是xx1001之类的
可以在调试里看一下
*的意思是读一个地址指向的内容
&*piRand==piRand
rand是一个地址
*rand是指向这个地址的地址
所以程序出错了
piRand[i]=rand(); 的意思是把rand的地址赋值给piRand[i]
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-24

    指针是C语言中广泛使用的一种数据类型,指针的*主要出现在两个地方

    首先是在指针定义时出现的*,定义时的 * 相当于标识了指针变量,即表明这是一个指针变量

    其次,指针在使用时也会出现 *,这里的*的取内容的意思,即把指针内存储的东西提取出来使用

第2个回答  2008-07-11
地址有规律地增长,
int是4个字节的位置
所以可以当数组使用,
每次地址增4表示下一个数

*是该地址 取数值
如p是指向 数i
那么*p就是取p指向的数的值

piRand[i]=*rand();

piRand[i]表示数组中的一个数字
所以piRand[i]=rand();
加个*是错的
第3个回答  2008-07-11
*有多重意义:
1.在声明变量时,它表示这是一个指针
2.还表示乘号
3.在scanf()中表示赋值约束。
4.在printf()中用于动态确定列宽和精度
5.用于间接访问指针所指向的对象的值。

而在piRand[i]=*rand();中,不符合以上任何一条。
第4个回答  2020-05-03
指针就是一个数据的地址,比如:一个房间里放着数据,而指针相当于这个房间的门牌号

C语言中,指针中的*是什么意思?
&的意思是读一个变量的地址 比如你声明了int a;&a是a的地址可能是xx1001之类的 可以在调试里看一下 的意思是读一个地址指向的内容 &*piRand==piRand rand是一个地址 rand是指向这个地址的地址 所以程序出错了 piRand[i]=rand(); 的意思是把rand的地址赋值给piRand[i]...

c语言的“*”是什么意思?
从运算符来看,* 表示乘号,\/ 表示除号,从程序的角度来说, * 是通用匹配符,\\是转义符。当查找文件夹时;当不知道真正字符或者不想键入完整名字时,常常使用通配符代替一个或多个真正字符。星号(*)可以使用星号代替零个、单个或多个字符。如果正在查找以AEW开头的一个文件,但不记得文件名其余部...

*在c语言中是什么意思?
是乘。星形标示号*通常置于有关的词句的左上角或右上角,作为划分文章不同部分的符号成组使用时单独占一行。在电脑中,由于“×”容易和未知数x混淆,所以使用*来代替乘号。

C语言中“*”的含义
在C语言中“*”,一般情况下是算术运算符,表示乘法。

"*"在c语言中代表什么
"*"在c语言中代表指向的内容,它与所指内容合在一起构成指针

C语言中*是什么意思
具体来是有3方面:1。定义时 指明某个变量是指针变量 如 int *p;表示p是指针变量,里面存放的是某个变量的地址 2。非定义 *表示地址变量指向的变量;如:*p=a;表示将a变量的值赋予p作为地址指向的变量中 3。作为运算符 a*b 表示a乘于b ...

C语言 指针 直接字符串变量前加*是什么怎么回事?没有提前定义啊_百度知 ...
加了*就表示这是指针(就是这个变量的存储地址,这是个char(字符)指针,就是只能存储字符类变量的地址)!这道题是传址调用, fun(s);就是把s[80]中的字符串的首地址传给形参a(这里a是字符型指针),之所以这样写,是为了让实参随着形参变而变!C语言:传值调用实参不能随着形参改变而改变,只有...

c语言中的 **是什么意思
是指针,**就是指针的指针。在c语言中指针就是某变量的地址,那指针就是地址的地址。可能这样还比较抽象,那举个现实中的例子吧:你在一次聚会上见到一个美女C,你想认识她但是你不知道她的联系方式,你只认识你的朋友A,你朋友A认识该美女的闺蜜B。于是,你找你朋友A帮你问B,B那返回了美女C的...

...什么意思,例如:max=*std或者 void fun (int*a,*b)是什么意思...
c语言里的*有多种功能。第一种,*表示乘法运算符。max = * std里的*就是乘法运算符,max=*std是一种简略写法,它等价于max = max * std。不过max = *std这种写法,程序运算速度会快一些,所以经常这样写。第二种,*表示一种数据类型,即指针类型。void fun(int* a, int* b)即表示fun函数...

c语言中的*是什么意思
在C语言中有多种含意:1.在声明时表示变量是一个指针 2.在算术表达式中表示乘号 3.在执行语句中出现在指针变量前面时表示间接引用(取指针指向的地址保存的值)4.用在scanf()函数中,表示赋值约束 5.用在printf()函数中,表示对应变量输出的列宽和精度在后面的变量列表中指定 6.表示一个字符 ...

相似回答