您的位置:首页 > 其它

一个小例子引发的思考

2018-01-16 20:07 281 查看
思考的问题:1.sizeof和strlen的区别

2.形参传数组名和传指针变量有啥区别不

3.sizeof数组得到的就是是什么的值

先看以下代码:

#include<stdio.h>
#include<string.h>
int main(){
int deal(char b[]);
char a[100];
char *q;
printf("数组a占  %d  个字节\n",sizeof(a));
printf("指针变量q占 %d  字节\n",sizeof(q));
q=a;
int c;
gets(a);
c=deal(q);
printf("该字符串的长度  %d",c);
}
int deal(char b[]){
int d;
printf("形参数组名所占  %d  个字节\n",sizeof(b));
d=strlen(b);
return(d);
}
运行结果如下:



通过这个例子解决了以上问题:

1.sizeof一般是测某一数据类型所占的字节数,而strlen则是测某一字符串的长度,以\0为结束标志

2.通过这个例子还可以发现,其实形参用数组名或者指针变量所占的字节数是一样的

3.如果直接用sizeof计算数组,得到的就是声明时设定的大小,比如a[100],则sizeof(a)==100
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: