#include
by 30003000 - C/C++ - 2008-07-19 17:52:04 阅读(8056) 回复(3)
#include
在c语言中,指向函数的指针的使用,是不是必须加()呢?如: int fp(int i) { return i; } int main() { int (*f)(int)=&fp; printf("%d",(*f)(9)); } 如果写成:printf("%d",f(9));也可以正常运行,可是书上说使用和声明是一致的,必须有加号和*,到底是怎样呢?
#if 0 static char *p_1[]={"ZERO","ONE","TOW","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","TEN",}; static char *p_2[]={"ELEVEN","TWELEVE","THIRTHTEEN","FOURTEEN"\ ,"FIFTEEN","SIXTEEN","SEVENTEEN","EIGHTEEN","NINTEEN"}; static char *p_3[]={"TEWENTY","THIRTY","FOURTY","FIFTY","SIXTY","SEVENTY","EIGHTY","NINTY"}; static char *p_base[]={"HUNDRED","THOUSAND",...
已有一堆函数,这些函数返回值,参数个数,参数类型都各种各样。 需要定义一个函数指针, 根据用户输入将不同的函数地址赋值给该函数指针。请问这种函数指针该怎么定义? 例如: int func_a(int x, int y); char func_b(char *p); 如果定义一个函数指针 int (*p_func)(int, int),那只能把func_a地址赋值给p_func,而把func_b赋给它就会出错。现在要定义的函数指针就是能指向各种类型函数。在论坛里找老帖子也没找到类似文章,请各...
我是在Linux下,运行这个程序。 main() { int i=8; int *p; p=& printf("%d %d\n",p,p+1); } 这个程序的结果是: -1073743020 -1073743016 int类型的指针不是占两个字节吗?怎么是差4个字节? 是不是我这么输出不正确?还是有什么其他的原因,请大家帮忙!谢谢!
小弟遇到问题,如下 char *ptr1="abcd"; char **ptr2=&ptr1; printf("%c\n",ptr1[1]); printf("%c\n",*ptr2[1]); 为如下面的输出为null呢,这时ptr1和*ptr2有什么区别的。 请老大们解惑。
char **line = NULL;//不可以“等于NULL”??===>1 *line = (char*)malloc(100);//Segmentation fault,为什么?===>1 char **line;//===>2 *line = (char*)malloc(100);//malloc成功,为什么?===>2 为什么1的写法就会造成Segmentation fault? 而2不会?