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. dubbo工作原理

    part -- 外挂1.dubbo借助spring的schema启动和初始化 1.1 spring扫描所有jar下META-INF的spring.handlers和spring.schemas. 1. ...

  2. (Tree)94.Binary Tree Inorder Traversal

    /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tre ...

  3. [转]细说SQL Server中的加密

    简介 加密是指通过使用密钥或密码对数据进行模糊处理的过程.在SQL Server中,加密并不能替代其他的安全设置,比如防止未被授权的人访问数据库或是数据库实例所在的Windows系统,甚至是数据库所在 ...

  4. 【HOW】用PowerShell脚本修改用户配置文件属性显示次序

    首先将如下脚本保存为PowerShell文件,如:ReorderUserProfileProperty.ps1. 在执行此脚本时,如果不输入任何参数,将列出所有用户配置文件属性的名称和显示次序:如果只 ...

  5. C#入门(面向对象概念)

    也许是看概念性的东西太多了,所以一看基本就明白,但实际并没有掌握,有待实操.反而是UML(统一建模语言)引起了我的兴趣,发现这东东很像建筑行业的图纸:有标准和约定,很方便专业人士看懂程序的架构和逻辑. ...

  6. VS2010中的查找和替换中正则的使用

    只是记下来怕以后忘记了: 查找:/news/(\d+).html 要匹配(\d+),记得用括号 替换为:/NewsDetails.aspx?id=$1 $1表示匹配的结果

  7. WinForm控件TreeView 只部分节点显示 CheckBox

    WinForm控件TreeView 只部分节点显示  CheckBox 用过asp.net的应该知道,要在treeview中实现上述功能可以使用ShowCheckBox 属性指定那些节点显示check ...

  8. ZOJ 3481. Expand Tab

    题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4278 题意: 给出一些文本片段,把文本中的 Tab 字符根据配置,替换成 ...

  9. MonkeyRunner测试一MonkeyRunner的使用

    最近搭建MonkeyRunner开发环境,安装PyDev时,饱受折磨,现在终于搞定.因为一些原因,用了JDK1.6,在线安装插件PyDev成功后,Windows-Preferences里找不到PyDe ...

  10. js处理url参数

    var UrlArgent = { Parsed: false, //是否已解析 Cache: {}, //缓存值 ParseArg: function () { // 解析地址栏的参数值 UrlAr ...