在c语言中定义一个global struct 的类型的变量,如
struct prog{
int var[26];
int stack[20];
int tos;
};
typedef struct prog Prog;
在main中 Prog p;
在调用struct 中元素的时候 ,我存在这样的困惑,什么时候该用“->”操作符,什么时候用“.”错作符呢?在c语言中严格一点"->"是用来表示通过地址取,而“.”不是通过地址取,不严格来讲这两个操作符是一样的,从道理上说如果用错了也不会有什么,但是vc却以错误的信息给出!比如我用p.tos应该是没有问题的,但是vc在编译的时候会爆出error?我想知道这是为什么?以避免在今后编程时发生同样的错误。谢谢!
struct prog{
int var[26];
int stack[20];
int tos;
};
typedef struct prog Prog;
在main中 Prog p;
在调用struct 中元素的时候 ,我存在这样的困惑,什么时候该用“->”操作符,什么时候用“.”错作符呢?在c语言中严格一点"->"是用来表示通过地址取,而“.”不是通过地址取,不严格来讲这两个操作符是一样的,从道理上说如果用错了也不会有什么,但是vc却以错误的信息给出!比如我用p.tos应该是没有问题的,但是vc在编译的时候会爆出error?我想知道这是为什么?以避免在今后编程时发生同样的错误。谢谢!
解决方案 »
- MFC图形界面
- afxwin1.inl中的AfxGetResourceHandle()执行时断言错误
- 用ffmpeg进行视频转码的问题,求高手解答
- VC++之删除目录中同一类型(后缀)文件??
- 被主管批评的不行了,下面的代码什么问题?DestroyWindow(hwndtemp)窗口后连主窗口都看不见了,但可以find主窗句柄,重新show后看不到啊
- 怎么设置框架的颜色!!!
- 关闭对话框出现wincore.cpp line 980; 的错误
- 视图显示后台操作信息的问题???
- 在线等待,立即给分!!!如何改变按钮的文本内容?如何使一个非模态窗口变为模态窗口?如何在已有的对话框基础上创建一个模态窗口?如何
- 用vc做的动态联结库a.dll,如何调用其中的函数呀?
- 请教:FTP多线程断点续传问题
- 关于CreateMetaFile()得到的DC在GDI+中使用遇到的问题.
看出来了把
不是指针的,就用.,如Prog p; p.tos;
定义了如下global struct:
struct prog {
char wds[MAXNUMTOKENS][MAXTOKENSIZE];
int cw;/*current word*/
int bb;
int be;
};
typedef struct prog Program;struct variables{
float value_table[26];
float stack[20];
int tos;
};
typedef struct variables Vars;struct drawpostscript{
double angle;
double posx;
double posy;
};
typedef struct drawpostscript Draw;struct file{
FILE *fip;
FILE *fop;
};
typedef struct file File;
定义了方法:void Instruction(Program *p,File *file,Draw *draw,Vars *var);
在main(void){
.....
Instruction(p,file,draw,var);//这里为什么不能写成这样Instruction(&p,&file,&draw,&var);呢?
...}
受累给看一下,小弟正在学习指针中
在main(void){
.....
Instruction(p,file,draw,var);//这里为什么不能写成这样Instruction(&p,&file,&draw,&var);呢?
...}类型要统一
写成Instruction(p,file,draw,var);// 这是值传递,而参数中的类型确实指针,而不是一个具体指类型对象
(*)p.tos 等于 p->tos
这样写只是为了方便