c语言中的*是什么意思

作者&投稿:冷趴 (若有异议请与网页底部的电邮联系)
C语言中->是什么意思啊?~

->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.
举个例子:
struct Data
{
int a,b,c;
}; /*定义结构体*/
struct Data * p;/*定义结构体指针*/
struct Data A = {1,2,3};/*声明变量A*/
int x;/*声明一个变量x*/
p = &A ; /*让p指向A*/
x = p->a;/*这句话的意思就是取出p所指向的结构体中包含的数据项a赋值给x*/
/*由于此时p指向A,因而 p->a == A.a,也就是1*/
对于一开始的问题 p = p->next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体指针,其定义格式应该是:
struct Data
{
int a;
struct Data * next;
};/*定义结构体*/
…………
main()
{
struct Data * p;/*声明指针变量p*/
……
p = p->next;/*将next中的值赋给p*/
}
链表指针是C语言的一个难点,但也是重点,学懂了非常有用。要仔细讲就必须先讲变量、指针。

扩展资料:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。
每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。
由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。
使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。
但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。
链表最明显的好处就是,常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。
链表允许插入和移除表上任意位置上的节点,但是不允许随机存取。链表有很多种不同的类型:单向链表,双向链表以及循环链表。
链表可以在多种编程语言中实现。像Lisp和Scheme这样的语言的内建数据类型中就包含了链表的存取和操作。
程序语言或面向对象语言,如C,C++和Java依靠易变工具来生成链表。
参考资料:链表–百度百科

*在C语言中有多种含意:

1.在声明时表示变量是一个指针

2.在算术表达式中表示乘号

3.在执行语句中出现在指针变量前面时表示间接引用(取指针指向的地址保存的值)

4.用在scanf()函数中,表示赋值约束

5.用在printf()函数中,表示对应变量输出的列宽和精度在后面的变量列表中指定

6.表示一个字符

char *s
一个字符型指针s,指向一个字符型(1字节大小)的内存空间。
s中存的是这个空间在内存中的地址。

逻辑与,双目运算符,0&&0 = 0
0&&1 = 0
1&&0 = 0
1&&1 = 1

是指针类型,像CHAR *S,就是指向字符型的指针。

定义一个字符型指针

c语言中的*是什么意思
答:一. 乘法运算符; 如:a=a*3;二. 取指针区内容; 如: int *p,a; a=*p;

c语言中的*是什么符号?
答:C语言中乘号用“*”表示。同时按住【Shift + 8】可打出“*”。C语言中除号用“/”表示(shift键旁边,需英文状态下才能打出),求余用“%”表示(同时按住【Shift + 5】可打出)。

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

c语言中*是什么意思
答:表示乘号,且不可省略,数学上有的时候乘号可以省略,但是C程序中不能省略,如数学上表示a和b相乘,可以写成ab,但是在C程序中必须写成a*b,*必须要有。另外语句后有分号;所有符号都是英文半角符号。比如:使用公式c=2πr计算圆的周长。该语句应写为:c=2*3.14*r;...

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

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

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

C语言中*是什么
答:这是C语言的逻辑运算符:异或 这个网站讲的非常详细,我摘抄了一些,详细的你看以看看。有很例子,好懂!逻辑运算符把各个运算的变量(或常量)连接起来组成一个逻辑表达式。逻辑运算符有4个,它们分别是: !(逻辑非)、 ||(逻辑或)、&&(逻辑与) ^(异或)。在位运算里面还有 &(位与...