C++ 语法错误

来源:百度知道 编辑:UC知道 时间:2024/05/25 19:40:58
麻烦高手帮我看下这几个程序有哪些语法错误。谢谢了

int* salary_ptr;
float* working_ptr=300.00;
salary_ptr=working_ptr;

还有
extern int test(int);
int (*func)(int);
func=&test();
(*func)++;

谢谢啦

float* working_ptr=300.00;
你这是想干什么?
你是想让这个指针指向内存中的地址300.00么?还是指向300.00数据的内存地址?
你这两种都不能实现.
没有人直接把一个内存地址给一个指针(数据常量).
内存地址只能是一个正整数.

一个数据在内存中是没有地址的.你这样就是错的
改成float* working_ptr=300.00f;
后面加一个f,在程序中的小数默认为double,当你加上一个f后则为float数据.

int* salary_ptr;
float* working_ptr=300.00;
salary_ptr=working_ptr;
这里的错误在最后一行,由于类型不一致,导致了不能进行赋值
extern int test(int);
int (*func)(int);
func=&test();
(*func)++;
这里的错误是你对函数指针理解存在偏差,你声明了函数int test(int);然后定义了函数指针,int (*func)(int);接下来你用函数指针指向了函数特性test,于是你使用的时候是用函数指针来代替函数被调用而不是让函数本身加1,函数test是不能用++操作的,所以会报错,函数指针是这样使用的,(*func)();这样就跟直接调用函数test()效果一样了,呵呵
所以你的问题是你对C++理解的不够,不过看多了就会好的,如果不明白的话就来问我吧