关于sizeof 跟strlen 的区别
char *t = "我a";
char t1[MAX_PATH] = "aaaaaa";
char display1[MAX_PATH];
char display2[MAX_PATH];
int len = sizeof(t);
int len1 = strlen(t);
itoa(len, display1, 10);
itoa(len1, display2, 10);
out(display1);
out(display2);
显示
sizeof 在取指针char的时候,不管多长长度都是4
sizeof 在取指针时,取到的是指针的长度,而不是char内容 的长度
strlen 取到的则是char的长度,汉子占2个长度
sizeof 在取char【maxpath】的时候,不管多长长度都是maxpath
sizeof 在取指针时,取到的是数组定义的长度,而不是char内容 的长度
strlen 取到的则是char的长度,汉子占2个长度
streln 取得长度比sizeof更准确
网上说法:
#include "stdafx.h"
#include "windows.h"
#include <iostream>
using namespace std;
int
_tmain(int argc, _TCHAR* argv[])
{
 char str1[]="abcde";
 char str2[]="我是中国人";
 WCHAR str3[]=L"abcde";
 WCHAR str4[]=L"我是中国人";
cout<<strlen(str1)<<endl;
 cout<<sizeof(str1)<<endl;
 cout<<endl;
cout<<strlen(str2)<<endl;
 cout<<sizeof(str2)<<endl;
 cout<<endl;
cout<<wcslen(str3)<<endl;
 cout<<sizeof(str3)<<endl;
 cout<<endl;
cout<<wcslen(str4)<<endl;
 cout<<sizeof(str4)<<endl;
 cout<<endl;
return
0;
}
输出结果:
5
6
10
11
5
12
5
12
请按任意键继续. . .
由此可见,strlen返回的是字节数(对中英文不一致,中文占两个字节,不包括'/0'),而wcslen返回的是字符数(对中英文一致)。而sizeof返回的是字节数(包含'/0',而'/0'在Unicode下也是占两个字节的)。
地址:http://blog.csdn.net/hczhiyue/article/details/6248229
关于sizeof 跟strlen 的区别的更多相关文章
- sizeof和strlen的区别
		一.sizeof sizeof(...)是运算符,而不是一个函数. sizeof操作符的结果类型是size_t,在头文件中typedef为unsigned int,其值在编译时即计算好了, ... 
- Sizeof与Strlen的区别与联系
		转自:http://www.cnblogs.com/carekee/articles/1630789.html 一.sizeof sizeof(...)是运算符,在头文件中typedef为uns ... 
- Sizeof与Strlen的区别与联系(转)
		Sizeof与Strlen的区别与联系 一.sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型 ... 
- C++-sizeof和strlen的区别
		一.sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等. 它的功能是:获得保 ... 
- sizeof和strlen的区别和联系总结
		link:http://blog.csdn.net/ghevinn/article/details/9974967 strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头 ... 
- 【转】Sizeof与Strlen的区别与联系
		原文地址:http://www.cnblogs.com/carekee/articles/1630789.html 1.sizeof sizeof(...)是运算符,在头文件中typedef为uns ... 
- C++Sizeof与Strlen的区别与联系
		一.sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等. 它的功能是:获得保 ... 
- Sizeof与Strlen的区别【转】
		本文转载自:http://www.cnblogs.com/carekee/articles/1630789.html Sizeof与Strlen的区别与联系 一.sizeof sizeof(.. ... 
- 我也介绍下sizeof与strlen的区别
		本节我也介绍下sizeof与strlen的区别,很简单,就几条: 1. sizeof是C++中的一个关键字,而strlen是C语言中的一个函数:2. sizeof求的是系统分配的内存总量,而strle ... 
- C++基础--sizeof和strlen的区别
		首先,来运行一段程序: #include "stdafx.h" #include <stdio.h> #include <string.h> int mai ... 
随机推荐
- IOS ScrollView放大缩小点击位置并居中
			项目中的一个优化案例,提升用户体验,对地铁线路图点击放大.缩小,并且点击位置居中: 正常ScrollView 我们点击某一点比如屏幕右侧,想要点的位置向左移动到中心位置,很简单只有算出该点位置距中心位 ... 
- translate和replace的区别
			今天在oracle数据库中看到replace和translate的嵌套就有点蒙了,于是就上网看了一下,感觉豁然开朗: 今天遇到的问题如下: replace(TRANSLATE(a.deal_msg,' ... 
- Android 通过广播获取网络状态
			Android系统网络连接状态的改变会发一个广播,注册一个广播接收者,实时动态的检测网络状态,及时提醒用户,优化用户体验. 本文仅提供WIFI 状态的检测作为参考,其他网络连接方式请 ... 
- openlayers3 画扇形
			参考了http://www.cnblogs.com/lingxue3769/archive/2011/11/01/2231409.html同学的博客 和 百度知道https://zhidao.baid ... 
- 查看SQLServer最耗资源时间的SQL语句
			执行最慢的SQL语句 SELECT (total_elapsed_time / execution_count)/1000 N'平均时间ms' ,total_elapsed_time/1000 N'总 ... 
- 在SQL2008配置数据库镜像1418错误的处理
			在SQL2008配置数据库镜像错误一般都由以下原因造成 1.主体.镜像服务器SQL SERVER选择本账号切保持一致 2.在数据库镜像配置向导中的“服务账号”选项中请选择需要同步数据库的登陆名,例如数 ... 
- Linux 任务计划
			一.配置cron实现自动化 使用cron实现任务自动化可以通过修改/etc/crontab文件以及使用crontab命令实现,其结果是一样的. 1./etc/crontab文件实现自动化 cron守护 ... 
- 开发android App干坏事(一)
			最近都是在搞java,android的知识,前两天生日朋友和我聊到,有一个认识的人通过反编译android程序往里面插入广告积分墙赚了很大一笔钱,很短时间内赚了几十万,(为毛感觉这已经是扯淡篇了,转入 ... 
- iOS--KVO的实现原理与具体应用
			本文分为2个部分:概念与应用. 概念部分旨在剖析KVO这一设计模式的实现原理,应用部分通过创建的项目,以说明KVO技术在iOS开发中所带来的作用: 如果是作为是刚接触KVO的初学者,可以在了解基本原理 ... 
- echarts学习网站
			echarts : http://echarts.baidu.com/echarts2/doc/example.html 相关脚本学习网站:http://www.jb51.net/html/list/ ... 
