gets()函数//strlen()与sizeof()的区别//break 与continue的区别

一、gets()函数:

1.最好不要用gets()的原因:它不检查目标数组的大小,容易空间溢出

2.gets()的用法:gets(数组名),遇到"\n"或到了文件末尾则停止读入

3.gets()返回值:程序正常时,返回的是char 的指针,程序异常(溢出)返回NULL

二、3.strlen()和sizeof()的区别:

1.sizeof()属于宏定义,计算的是所占空间字节的大小,具体大小和编译器有关,一般情况下,

sizeof(char)=1

sizeof(int)=4

sizeof(double)=8

sizeof(long)=4

sizeof(指针)=4

2.strlen()计算的是以'\0'结尾的字符串的长度(即有几个字母),不算'\0'

3.经典例子:

char * c="abcdef";

char d[]="abcdef";

char e[]={'a','b','c','d','e','f'};

printf("%d %d",sizeof(c),strlen(c));//4 6 理由:指针  || 字符串长度

printf("%d %d",sizeof(d),sizeof(d));//7 6 理由:数组所占空间的字节数(7*1,算上‘\0’一共7位,每位占1字节)

printf("%d %d",sizeof(e),strlen(e));//6 随机 理由:数组以单个元素赋值,后无‘\0’结尾,所以一共6位,每位1B   || 

strlen(e),去找'\0'结尾的字符串的长度,由于找不到'\0',所以返回的值是一个不确定的值。

三、break 与continue的区别:

1.在do-while,for,while 中break跳出本层循环,continue结束本次循环

2.在单独的switch中,break表示跳出整个switch语句块,而continue不能用于单独的switch 中

3.循环内的switch:break 是指跳出switch语句块,但本次循环中switch语句块后面的代码仍然执行

continue是指结束本次循环,本次循环中switch语句后面的代码不被执行

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值