>凡事网 导航

c语言中->和.的区别 C语言中,用"->"和用"."的区别

2024-05-28m.fan-pin.com
c语言中 a a'和"a"的区别~

c++语言是c语言发展起来的,所以继承了c语言几乎所有的特点,但c++语言又有自己的个性。c语言是一种面向过程的编程语言,而c++主要是面向过程的,因此c++有类的概念,而c语言就没有。c++的功能强大,编译器复杂,适合高端程序的设计和编辑,c语言的编译器简易,适合低端程序。

c语言中绝对有“->”和“.”!
这两个运算符都是用来访问结构体的。比如有结构体
struct student
{
int math;
int english;
};
并且有两个变量
struct student zhangsan;
struct student *p;
p=&zhangsan;
你要留意zhangsan是结构体的名字,p是指向这个结构体的指针。
那么访问结构体的两个变量时就只能用
zhangsan.math=60;
zhangsan.english=70;
p->math=80;
p->english=90;
即结构体的名字用点,相当于“的”,某个结构体的某个分量。
指向结构体的指针就用“->”,相当于指针指向的结构体的分量。(你看那箭头,就好比指针)
另外,在C语言中还有“位段”的概念,访问某个bit也用“.”,也可以理解成一种结构体。

c语言中->和.的区别为:性质不同、指向不同、访问不同。

一、性质不同

1、->:->是指向结构体成员运算符。

2、.:.是断点符号,不属于运算符。

二、指向不同

1、->:->所指向的是结构体或对象的首地址。

2、.:.所指向的是结构体或对象。

三、访问不同

1、->:->的用处是使用一个指向以便访问结构体或对象其内成员。

2、.:.的用处是使用一个指向以便访问结构体或对象。

参考资料来源:

百度百科——->

百度百科——点



1、指向不同

一般情况下用“.”,只需要声明一个结构体。格式是,结构体类型名+结构体名。然后用结构体名加“.”加域名就可以引用域 了。因为自动分配了结构体的内存。如同 int a;一样。

而用“->”,则要声明一个结构体的指针,还要手动开辟一个该结构体的内存,然后把返回的指针给声明的结构体指针,才能用“->”正确引用。

否则内存中只分配了指针的内存,没有分配结构体的内存,导致想要的结构体实际上是不存在。这时候用“->”引用自然出错了,因为没有结构体,自然没有结构体的域了。

2、读法不同

(*a).b 等价于 a->b。"."一般情况下读作"的”。

“->”一般读作"指向的结构体的"。

3、作用的不同

在“结构”一单元中出现的->运算符成为“右箭头选择”,在使用中可以用new_node->value = 10;来代替(*new_code).value = 10;

也就是说在结构中,运算符->是运算符*和运算符.的结合,在上述语句中,他先对new_node间接寻址以定位所指向的结构,然后再选择结构的成员value。



->是指针引用数据用的,. 是普通的变量引用数据用的;
&p->id和p.id是不一样的,前者是取id的地址,后者是取id的值;
&p->id和&p.id是一样的,都是取id的地址,因为->和.的优先级都比&高,但这里面的p是不一样的,前者是指针变量。

唯一的区别是->前面放的是指针,而.前面跟的是结构体变量,如已定义了一个结构体struct student,里面有一个int a;然后有一个结构体变量struct student stu及结构体变量指针struct student *p;且有p=&stu,那么p->a和stu.a表示同一个意思

C语言中的'.' 是直接引用;
C语言中的'->'是间接引用。

c语言中的堆栈区变量区和汇编学的堆栈段代码段的区别
一个由C\/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是...

粤语和普通话差别很大,它是一门语言还是汉语方言?
这也是许多人支持粤语是一门语言而不是方言的原因。粤语和普通话差距之大,甚至比一些欧洲语言间的差距还大。 首先从词汇的角度上来说,根据1988年的一项调查,在1001个常用词汇中,粤语和北京话完全相同的只有140多个,只占总数的10.4%[2]。 要知道,完全被视作两门不同语言的西班牙语和葡萄牙语,其同源词汇是高达89...

大脑皮层几个主要的语言区及其语言功能
功能:能分析综合与语言有关肌肉性刺激。此处受损,临床上称运动性失语症。2、听觉性语言中枢(威尔尼克区的一部分):位于22区,位于颞上回后部。功能:能调整自己的语言和听取、理解别人的语言,此处受损,临床上称为感觉性失语症。3、书写性语言中枢(书写中枢):位于额中回的后部,功能:控制写字...

C语言中 局部变量和全局变量都是存储在什么区
C语言中局部变量存在栈里,全局变量存静态存储区。局部变量在栈空间上分配,这个局部变量所在的函数被多次调用时,每次调用这个局部变量在栈上的位置都不一定相同。局部变量也可以在堆上动态分配,但是记得使用完这个堆空间后要释放之。全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,...

C语言中“指针”和“指针变量”的区别是什么??
1、概念不同 “指针”是概念,“指针变量”是具体实现,指针也是一个变量,所以需要进行定义,而对于指针的定义,与一般变量一样。2、 存放地址不同 一个变量的(内存)地址称为该变量的“指针”,通过指针能找到以它为地址的内存单元。而指针变量是用来存放另一个变量的地址的(即指针)。

C语言程序设计中区不区分大小写?
1。C语言程序设计中区不区分大小写?区分大小写.例如:abc,Abc,aBc,abC,ABc,aBC,AbC 它们是不同的量。例如系统保留字和函数 float, double, int, if, for, sin, cos, EOF, NULL 大小写不能错。2。格式很重要吗?例如有的需要前面空两格,不空会不会有严重后果?程序书写中的空格符很重要,...

在电脑里的区域和语言选项怎样设置朝鲜语?
入法的方法做个说明:1 右键点击左面右下角上的语言选项;2 点击“设置(E)”3 点击“添加”4 选择添加输入语言种类---朝鲜语,确定 5 中文和朝鲜语之间得切换一般默认为“左shift + ctrl ”6 切换到朝鲜语输入法以后,按 “ alt ”可实现在朝鲜语和英文间切换 试试看看,祝你好运!

一个国家的官方语言和通用语言有什么区别
1.官方语言是一个国家(地区)的公民与其政府机关通讯时使用的语言.因国家和地区范围界定不同,官方语言只是个相对概念.具体而言是一个国家通用的正式语言或认定的正式语言.它是为适应管理国家事务的需要,在国家机关、正式文件、法律裁决及国际交往等官方场合中规定一种或几种语言为有效语言的现象.官方语言...

怎么把手机上的语言由汉字改成英文?
1. 首先,我们需要找到手机设置菜单中的“语言和地区”或“Language & Region”选项。不同的手机品牌和操作系统可能设置的位置和名称略有不同,但通常可以在“设置”或“Settings”应用的顶部菜单中找到。2. 进入“语言和地区”选项后,我们会看到一个语言列表,当前选择的语言会被标记为“首选语言”或...

C语言内存中是否存在一个区域,存储着变量的符号,变量的类型和变量的首...
回答:C语言标准不应该说编译的东西是什么,或者可以说,即使编译结果包含问题中的信息,也无法按照C语言标准获得这些信息。 一些想法虽然一般的编译器一般不存储信息,但为了调试或性能分析,常常会将类似的信息(如调试符号)存储在可执行文件或其他调试文件中,这样您可以在调试器中看到与标识符值对应的信息。 在...

相关链接2

返回顶部
凡事房车自主流
凡事网