sizeof

https://baike.baidu.com/item/sizeof/6349467?fr=aladdin

https://blog.csdn.net/u012520854/article/details/53511154

对 sizeof() 的处理都是在编译阶段进行;

在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符;

1、sizeof 数组指针

(1) 数组:如果是数组首地址,sizeof会输出数组所占地址空间的大小(字节为单位);

一般指针:如果是一个指针的话,则输出在该系统中地址的字节宽度,即(位宽/8)。

(2) 如果是通过函数传递过来的地址,那么sizeof会把数组首地址和指针无差别当成是地址。

void test_sizeof_addr(char *a)
{
    printf("%d\n", sizeof(a));
}
void test_sizeof_array(char a[])
{
    printf("%d\n", sizeof(a));
}
int main()
{
    char b[30];
 
    test_sizeof_addr(b);
    test_sizeof_array(b);
 
    return 0;
}
View Code

2、sizeof() 类与对象 

数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址;

3、sizeof 自定义结构体struct

4、sizeof() 与 strlen() 区别;

posted @ 2019-03-06 22:27  kuaqi  阅读(272)  评论(0编辑  收藏  举报