sizeof 的用法

void foo(char str[100])
{
	cout<<sizeof(str)<<endl;
}
int main ()
{
    char str[]="\b\0";
    char *p =str;
    int n=10;
    void *x = malloc(100);
    cout << sizeof(str)<<endl;       //3数组内只有三个字符
    cout <<sizeof(p)<<endl;			 //4---指针均为四个字节    
    cout<<sizeof(n)<<endl;			//4----int型为四个字节
    cout<<sizeof(x)<<endl;			//4----指针为四个字节
    foo(str);		//4
    return 0;
}

  (1)注意字符串时,后面隐藏着一个'\0'字符。

   而且转义字符算一个字符来计算,转移字符如下图所示:

转义字符
意义
ASCII码值(十进制)
\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
\ooo
1到3位八进制数所代表的任意字符
三位八进制
\xhh
1到2位十六进制所代表的任意字符
二位十六进制
注意:区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换
(2)指针均为4个字节
(3)char  1字节
  short 2字节
  int long float  4字节
  double     8字节
(4)数组a作为函数形参时,sizeof(a)=4;
  数组b作为局部变量/全局变量/静态变量 的数组时,sizeof(b)=数组的元素个数。
 
posted @ 2016-11-20 21:40  SimonLiang  阅读(947)  评论(0编辑  收藏  举报