c语言中什么时候用"->"什么时候用"."

如题所述

如果在代码中,调用了这个头文件中的函数或者宏定义,则需要引用该头文件。引用stdlib.h头文件,即#include <stdlib.h>。这里的.h是不可缺少的。stdlib.h中,包含了C语言的一些常用库函数。如动态内存相关的malloc, realloc,zalloc,calloc,free等。


C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性。

C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》。这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。

C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-10
假如结构体 struct a{int num};
struct a *p,则p->num;
struct a p,则 p.num;
当结构体定义的那个变量是指针的时候用->如果定义的是一个变量,则用“.”;追问

不是吧 有一道题 main函数中是用的"." 调用的函数中用"."就不对,必须用"->" 结构体定义的那个变量是一个普通变量,不是指针
struct student {
long sno;
char name[10];
float score[3];
};
void fun( struct student *b)
{
/**********found**********/
b->sno = 10004;看这里用 "."就不对
/**********found**********/
strcpy(b->name, "LiJie");
}

追答

上面我已经说了,
struct a *p,则p->num;

用->你看你的结构体的定义,就是struct student *b,这就是定义了一个指针,当然要用->用 . 就不对了……
如果你把struct student *b的星号去掉则就用点了……

本回答被提问者和网友采纳
第2个回答  2012-09-10
同上