360公司2015年秋季校园招聘笔试考卷(技术类 D)部分试题程序验证和解析1

一 题目
原题号:16

定义chardog[]= "wang\0miao";那么sizeof(dog)与strlen(dog)分别是多少:

A 9,9 B 9,4 C 10,4 D 4,4
答案:C

二 程序验证

#include <string.h>

int main(int argc, char **argv)
{
	char dog[] = "wang\0miao";
	int lenBySizeOf = sizeof(dog);
	int lenByStrlen = strlen(dog);
	
	printf("sizeof of dog is: %d,\nstrlen of dog is: %d\n",lenBySizeOf,lenByStrlen);
	return 0;
}

运行结果:



三 解析:

1 sizeof

sizeof是c语言的单目运算符,如同 ++,并不是函数。

返回一个size_t类型的值,表示操作数的存储字节数。

对字符串进行求存储字节数时,包括字符串的结束标志'\0'.

因此,dog的sizeof为可数的9个字节加上1个隐藏的结束符'\o',共10个字节。

2 strlen

字符串函数,返回的是字符串地址到第一个'\0'字符中间的字符数目。不包括'\0'.

因此,dog的strlen值为第一个'\o'之前的“wang”字符的大小,为4。


参考:

http://unix-cd.com/vc/www/23/2007-11/9848.html

2

http://itlab.idcquan.com/c/skill/829127.html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值