char c[][8]={“apple”,“orange”,“banana”};
printf("%d,",sizeof( c));
printf("%d",strlen( c));
答案:24,5
printf("%d,",sizeof( c));//这个为什么是24,很好理解,sizeof是判断类型占用大小,3行8列固定占用空间大小为24个字节
printf("%d,",strlen©);//这个是5,很多同学搞错,strlen函数,实际是当遇到结束符\0的时候,就结束了,也就是到①处,不管后面是什么内容,他都结束。他只取字符串的长度,不包含结束符在内
2.函数指针
int (*p)(int a,int a);
int add(int a,int b)
{
return (a+b);
}
p=add;
int sum=p(1,2);//正确
int sum=(*p)(1,2);//正确,
3.typedef结合函数指针的用法
例1:
int add(int a,int b)
{
return (a+b);
}
typedef int (*PFUC)(int ,int);
PFUC p=add;
int sum=p(1,2);//正确
int sum=(*p)(1,2);//正确
例2:
int add(int a,int b)
{
return (a+b);
}
typedef int (PFUC)(int ,int);
PFUC *p=add;
int sum=p(1,2);//正确
int sum=(*p)(1,2);//正确