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 的区别的更多相关文章

  1. sizeof和strlen的区别

    一.sizeof    sizeof(...)是运算符,而不是一个函数.    sizeof操作符的结果类型是size_t,在头文件中typedef为unsigned int,其值在编译时即计算好了, ...

  2. Sizeof与Strlen的区别与联系

    转自:http://www.cnblogs.com/carekee/articles/1630789.html 一.sizeof    sizeof(...)是运算符,在头文件中typedef为uns ...

  3. Sizeof与Strlen的区别与联系(转)

    Sizeof与Strlen的区别与联系 一.sizeof     sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型 ...

  4. C++-sizeof和strlen的区别

    一.sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等.    它的功能是:获得保 ...

  5. sizeof和strlen的区别和联系总结

    link:http://blog.csdn.net/ghevinn/article/details/9974967    strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头 ...

  6. 【转】Sizeof与Strlen的区别与联系

    原文地址:http://www.cnblogs.com/carekee/articles/1630789.html 1.sizeof  sizeof(...)是运算符,在头文件中typedef为uns ...

  7. C++Sizeof与Strlen的区别与联系

    一.sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等.    它的功能是:获得保 ...

  8. Sizeof与Strlen的区别【转】

    本文转载自:http://www.cnblogs.com/carekee/articles/1630789.html Sizeof与Strlen的区别与联系 一.sizeof    sizeof(.. ...

  9. 我也介绍下sizeof与strlen的区别

    本节我也介绍下sizeof与strlen的区别,很简单,就几条: 1. sizeof是C++中的一个关键字,而strlen是C语言中的一个函数:2. sizeof求的是系统分配的内存总量,而strle ...

  10. C++基础--sizeof和strlen的区别

    首先,来运行一段程序: #include "stdafx.h" #include <stdio.h> #include <string.h> int mai ...

随机推荐

  1. AIX上增加逻辑卷时报错误0516-787 extendlv: Maximum allocation for logical volume

    AIX上增加逻辑卷时报错误0516-787 extendlv: Maximum allocation for logical volume jdelv02 is 512. 在往aix使用chfs -a ...

  2. Maven如何传递系统属性变量到TestNG

    本文介绍如何传递Maven pom.xml里的系统属性参数到TestNG,文章沿用笔者一贯的风格--例子驱动. 解决什么问题 1. 用过WebDriver的都知道,当你启动Chrome或IE的时候都需 ...

  3. ORA-15025: could not open disk "/dev/asm***"--转载

    Symptoms: 打完补丁后,数据库报错ORA-15025,数据库无法启动. alert日志信息: Wed Jul22 16:26:57 2015 ORA-15025:could not open ...

  4. Android安装apk时报错:INSTALL_FAILED_NO_MATCHING_ABIS

    问题背景 OS:无关 AS:无关 Genymotion:2.5.2 Virtual Device:Google Nexus 5 - 5.1.0 - API 22 原因分析 CPU架构不符 解决方案 对 ...

  5. c# 文件及目录操作类

    18位长度的计时周期数: DateTime.Now.Ticks.ToString() 多数是收集而来,加上测试感觉很不错,分享一下或许有些帮助吧: 引用: using System; using Sy ...

  6. 2.2 ARM处理器工作模式

    ARM Architecture Reference Manual Arm 指令框架手册 种工作模式 Processor mode Mode number Description User usr 0 ...

  7. java.lang.OutOfMemoryError: Java heap space解决办法

    进入到tomcat/bin目录下,编辑catalina.bat,在这个文件最前面加入一句:set JAVA_OPTS=-Xms384m -Xmx384m 保存退出,重启tomcat服务即可. 该异常应 ...

  8. 仿QQ消息气泡提醒

    https://github.com/dkmeteor/Bubble-Notification   感谢这位作者,本例子只是封装了一下源码. 这是jar下载地址 下载之后只要引用就好.下面是一个最简单 ...

  9. python Django教程 之 安装、基本命令、视图与网站

    python  Django教程  之 安装.基本命令.视图与网站 一.简介 Django 中提供了开发网站经常用到的模块,常见的代码都为你写好了,通过减少重复的代码,Django 使你能够专注于 w ...

  10. virt-manager管理整个云平台的instances

    http://people.redhat.com/~rjones/virt-top/faq.html