定义了数组大小时:

sizeof是运算符,表示编译时分配的空间大小,即数组定义的大小,char t[20] = "sfa"。sizeof: 20; strlen: 3.
未定义数组大小

sizeof根据实际位数确定,注意字符串隐藏的\0也算一位,。

eg:1
char s[] = "a\128\\\tcb\xdg\n";
sizeof计算s大小时,为11位:a \12 8 \\ \t c b \xd g \n \0
strlen计算s大小时,为10位:strlen计算字符串长度时遇\0结束,但大小计算不包括\0
eg:2
char a[] = "a0\0a0\0";
sizeof(a)大小为7,即:a 0 \0 a 0 \0 \0
strlen(a)大小为2

char s[] = "a\128\\\tcb\xdg\n";   打印字符数组s:转义字符:
\yyy   : 1~3位八进制数所代表的任意字符,其中y的范围是0~7
\xyy   : 1~2位十六进制所代表的任意字符,其中y的范围是0~F

for (int i = ; i < sizeof(s); i++)
{
printf("%c", s[i]);
}
eclipse输出: (换行 \n 和 回车\r 效果都是换行的效果)
a
\ cb
g
gcc编译器输出:
a
g\ cb //回车后光标移到第二行起始,g将8覆盖

\12 : 2位八进制数,十进制10,控制字符LF,表示换行,gcc编译器下,表示从当前位置换到该位置对应的下一行

\\ :表示 \

\t :  表示水平制表,即一个TAB

\xd: 1位十六进制数,十进制13,控制字符CR,表示回车(gcc编译器下,回车表示回到本行首位,其后输出字符会覆盖之前数据)

注意转译字符 八进制和十六进制的问题:

char s[] = "a\12345b\x1221g\xay";

八进制最多选3位,即\123,当该八进制数转化为十进制后大于ASCII码表最大值127时,是一个乱码。

十六进制最多选两位,但截取\x后的整数的最后2位处理,前面的位数丢弃,即截断,即丢弃12,十六进制\x21,十进制33表示!

所以长度计算中:

sizeof是10位,即:a \123 4 5 b \x21 g \xa y \0

strlen是9位,即:a \123 4 5 b \x21 g \xa y

 常用转译字符:

\a----响铃(BEL)----007
\b----退格(BS) ,将当前位置移到前一列----008
\f----换页(FF),将当前位置移到下页开头----012
\n----换行(LF) ,将当前位置移到下一行开头----010
\r----回车(CR) ,将当前位置移到本行开头----013
\t----水平制表(HT) (跳到下一个TAB位置)----009
\v----垂直制表(VT)----011
\\----代表一个反斜线字符''\'----092
\'----代表一个单引号(撇号)字符----039
\"----代表一个双引号字符----034

\? ----代表一个问号---- 063

\0----空字符(NULL)----000
\yyy----1~3位八进制数所代表的一个任意字符----三位八进制
\xyy----1~2位十六进制所代表的一个任意字符----二位十六进制

转义字符 & sizeof & strlen的更多相关文章

  1. Strcmp(字符串1,字符串2)函数 Sizeof && strlen() Substr(a,b)

    Strcmp(字符串1,字符串2)函数 { strcmp函数是比较两个字符串的大小,返回比较的结果.一般形式是:  i=strcmp(字符串,字符串); 其中,字符串1.字符串2均可为字符串常量或变量 ...

  2. sizeof, strlen区别

    strlen与sizeof的区别 .sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型. 该类型保证能容纳实现所建立的最大对象的字节大小. .size ...

  3. sizeof && strlen 的区别

    本文主要记录了 sizeof 操作符 和 strlen() 函数的区别,以及各自的用途.(在下才疏学浅,发现错误,还请留言指正) sizeof 和 strlen 的区别 示例代码如下: #includ ...

  4. sizeof strlen strncpy用法总结 结构体实际所占内存大小 以及memset用法

    sizeof测类型(数组名除外) strlen测实际长度 strncpy返回指针类型 #include <stdio.h> #include <stdlib.h> #inclu ...

  5. sizeof strlen 求char*字符串的长度

    sizeof只是求变量所占的字节数,sizeof(char *) = 4字节: strlen(char*) 可以得到整个字符串的长度. 如果是数组vec,那么使用sizeof就可以得到整个数组的所占的 ...

  6. 缓冲区溢出实验 2 sizeof/strlen

    实验环境.代码.及准备 https://www.cnblogs.com/lqerio/p/12870834.html vul2 下面只给出有漏洞部分的代码.Vul2问题为sizeof函数在计算时会考虑 ...

  7. sizeof strlen区别于联系

    http://www.cnblogs.com/carekee/articles/1630789.html

  8. [基础]sizeof和strlen

    转自网络 首先切记,sizeof不能用来求字符串长度 1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型.该类型保证能容纳实现所建立的最大对象的字 ...

  9. sizeof(自己摸索d)

    Sizeof() 判断数据类型长度符的关键字 sizeof用法 sizeof(类型说明符,数组名或表达式); 或sizeof (变量名); 定义 sizeof是C/C++中的一个操作符(operato ...

随机推荐

  1. Codeforces 358D【DP】

    思路:  dp[i][0] 代表取的时候左边没有 dp[i][1] 代表取的时候右边没有 dp[i][2] 代表取的时候左右都没有 dp[i][3] 代表取的时候左右都有 然后自己转移吧= =. 注意 ...

  2. 51nod 1021【区间DP】

    思路: dp[ i ] [ j ]代表取[ i ,j ]区间石子的最小值,然后dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]); # ...

  3. Untiy一些方法前特殊标签记录

    [ExecuteInEditMode] // Make code live-update even when not in play mode [ContextMenu("Execute&q ...

  4. Unity3D研究院之IOS&Android收集Log文件(六十二)

    开发项目的时候尤其在处理与服务器交互这块,如果服务端程序看不到客户端请求的Log信息,那么无法修改BUG.在Windows上Unity会自动讲Log文件写入本地,但是在IOS和Android上确没有这 ...

  5. IDEA 快捷键MacOS

    Alt + Enter 导入包,自动修正 Command + N 查找类 Command + Shift + N查找文件 Command + Alt + L格式化代码 Command + Alt + ...

  6. struts工作原理

    在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Controller.ActionProxy.ActionMapping.Configuration Man ...

  7. CF #536div2E(dp)

    简单入门版:洛谷1280 时间交叉和倒序处理的思路是相同的,相较之下此题更多的条件是:1.每个任务可以在很多个时间点中选一个去做:2.会有捣乱. 解决方法:1.每个时间点选哪个根据规则的话是固定的可预 ...

  8. python+selenium 页面中存在选项卡时,获取页面内容的小技巧

    最近用selenium读取页面内容时,遇到包含选项卡的页面,由于选项卡多由js加载其中的内容,所以在网址打开时只能获取到默认显示的选项卡中的内容,而tab2.tab3等等都需要傻傻的点击一下才会获取到 ...

  9. 088 Merge Sorted Array 合并两个有序数组

    给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1中,使得 num1 成为一个有序数组.注意:你可以假设 nums1有足够的空间(空间大小大于或等于m + n)来保存 ...

  10. elastcisearch中文分词器各个版本

    地址 https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v6.0.1