奚华 发表于 2012-11-18 17:32
我没写准确,C里就是struct,java里有没有这样的结构?
你说C中的struct没有方法是错的,里面可以有方法的 ...
根据谭浩强c语言程序设计这本书 原话:
“结构”是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。
里面不可能有函数 只能有函数指针 由函数指针指向其他函数
函数指针是指针 指针也是基本数据的一种
自己在机子上实验了一下 里面只要有类似函数的就会报错
个人理解是结构体是一种数据 函数是一种操作过程- //gcc的编译器,devcpp的IDE
- #include <stdio.h>
- #include <stdlib.h>
- #include <malloc.h>
- struct Data{
- int data;
- int (*pSayHello)();
- };
- int sayHello(int data){
- printf("Hello %d",data);
- return 1;
- }
- int main(){
- struct Data *p1;
- int i = 0;
- p1 = (struct Data *)malloc(sizeof(struct Data));
- p1->data = 9;
- p1->pSayHello = sayHello;
- i = p1->pSayHello(p1->data);
- return i;
- }
复制代码 运行结果:
Hello 9
--------------------------------
Process exited with return value 1
Press any key to continue . . . |