1.sizeof是运算符,而strlen是函数. 2.sizeof操作符的运算结果为size_t,他在头文件中的typedef为unsigned int.该类型保证能容纳所操作对象的最大字节大小. 3.sizeof可以用类型做参数,而strlen只能用char*做参数,且必须是以‘\0’结尾. 4.数组做sizeof参数不退化,而做strlen就退化成指针. 5.大部分编译程序在编译的时候就把sizeof处理过了,这就是sizeof(x)可以用来作为数组空间大小的原因. char str[20]…
在C/C++中,字符串是以零('\0')结尾的.比如,对于下面的字符串: "hello"  在最后一个字符'd'后面,还有一个我们肉眼看不见的'\0'字符,作为该字符串的结束符.所以,"Hello"其在内存中的存储形式为: 'H' 'e' 'l' 'l' 'o' '\0' 最后有一个我们看不见的'\0'.明白了字符串的结尾方式,那么如何计算字符串的长度呢?比如: 例题1:char str1[]="12345678";char str2[]={'1…
本文不是研究sizeof(), strlen() 的深奥定义和原理,我们不会在理论上太过钻牛角尖.希望读这篇文章的你,也不要太过抠概念(不要拘泥于语法).我们只做 实用意义 的介绍和讨论. 在介绍字符串之前,先介绍 sizeof()操作符 . strlen()库函数. 1.sizeof() 基本介绍 printf("int: %d\n", sizeof(int)); printf("char: %d\n", sizeof(char)); printf("i…
一.sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等.    它的功能是:获得保证能容纳实现所建立的最大对象的字节大小.    由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小.实际上,用sizeof来返回类型以及静态分配的对象.结构或数组所占的空间,返回值跟对象.结构.数组所存储的内容没有关系.    具体而言,当参数分别如下时,sizeof返回的值表示…
解析:由以下几个例子我们说明sizeof和strlen之间的区别.第1个例子: sizeof(ss)结果为4,ss是指向字符串常量的字符指针.sizeof(*ss)结果为1,*ss是第一个字符.第2个例子: sizeof(ss)结果为11,ss是数组,计算到“\0”位置,因此是(10+1).sizeof(*ss)结果为1,*ss是第一个字符.第3个例子: sizeof(ss)结果为100,ss表示在内存中预分配的大小,100×1.strlen(ss)结果为10,它的内部实现是用一个循环计算字符串…
#include<stdio.h>#include<string.h>  int main(){ int a,i=0; char ch[10000]; while(scanf("%d",&a)!=EOF&&a!=-1) {  ch[i++]=a; } /* 测试结果 sizeof 测试的是总空间  包括\0  strlen 测试的 是遇到第一个\0之前的长度  */ printf("sizeof计算的长度:%d\n",…
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编译 ( 编译之前处理 ),const是编译阶段. 编译检查:宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误. 宏的好处:宏能定义一些函数,方法,const不能. 宏的坏处:使用大量宏,容易造成编译时间久,每次都需要重新替换. 注意:很多Blog都说使用宏,会消耗很多内存,我…
李洪强iOS经典面试题155 - const,static,extern详解(面试必备) 一.const与宏的区别(面试题): const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编译(编译之前处理),const是编译阶段. 编译检查:宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误. 宏的好处:宏能定义一些函数,方法. const不能. 宏的坏处:使用大量宏,容易造成编译时间久,每次都需要重新替换.…
const: 1 定义变量 ,如下写法都可以: TYPE const ValueName = value;                  const TYPE ValueName = value; 2 当作为全局变量并且在他文件也想使用时:(默认const具有局部性) 1.CPP  :extern const TYPE ValueName = value;定义 2.CPP:  extern const  TYPE ValueName; 外部声明 上面两个const 和TYPE可以颠倒. 3…
const, static and readonly http://tutorials.csharp-online.net/const,_static_and_readonly Within a class, const, static and readonly members are special in comparison to the other modifiers. [edit] const vs. readonly const and readonly perform a simil…