您的位置:首页 > 其它

数组与指针的sizeof大小

2016-04-16 16:30 267 查看

1.sizeof定义sizeof运算符,以字节为单位给出数据大小strlen()函数,以字符为单位给出字符串长度sizeof(int)求类型大小,必须带括号sizeof(b=a+2)其中表达式不计算sizeof(a)求变量大小2.sizeof与数组int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a));//16 一个整形四个字节,四个元素 printf("%d\n", sizeof(a + 0));//4 表示指针 printf("%d\n", sizeof(*a));//4 a首元素地址,*a解引用首元素大小 printf("%d\n", sizeof(a + 1));//4 a首元素地址加1还是地址 printf("%d\n", sizeof(a[1]));//4数组第二个元素 printf("%d\n", sizeof(&a));//4 整个数组地址 vc中是16 错误 printf("%d\n", sizeof(&a + 1));//4 指向下一个数组的地址 printf("%d\n", sizeof(&a[0]));//4首元素地址 printf("%d\n", sizeof(&a[0] + 1));//4第二个元素2的地址 printf("%d\n", sizeof(*&a));//16 &a[b]整个数组地址 [b]解引用为整个数组大小[/b][/b] char name[] = "abcdef"; printf("%d\n", sizeof(name[0]));//1首元素大小 printf("%d\n", sizeof(&name));//4取地址数组名是地址 printf("%d\n", sizeof(*name));//1 name数组首元素地址,解引用数组第一个元素大小 printf("%d\n", sizeof(&name+1));//4指向下一个数组的地址 printf("%d\n", sizeof(name+1));//4 b的地址 printf("%d\n", sizeof(name));//7 数组总大小 printf("%d\n", strlen(name));//6 字符串长度 printf("%d\n", strlen(&name));//6 取地址数组名和数组名是同一值字符串长度 printf("%d\n", strlen(&name + 1));//X随机值 下一个数组的长度 printf("%d\n", strlen(name + 1));//5 第二个元素以后的字符串长度 3.sizeof和指针char *name = "abcdef"; printf("%d\n", sizeof(name[0]));//1首元素大小 相当于 *(name+0) printf("%d\n", sizeof(&name));//4 指针变量地址是地址 printf("%d\n", sizeof(*name));//1 首元素大小 printf("%d\n", sizeof(&name+1));//4 指针变量地址 加一跳过指向下一个地址 printf("%d\n", sizeof(name+1));//4 b的地址 printf("%d\n", sizeof(name));//7 name是指针变量 printf("%d\n", strlen(name));//6 字符串长度 printf("%d\n", strlen(&name));//随机值 name变量地址 printf("%d\n", strlen(&name + 1));//随机值 name变量地址 加一跳过指向下一个name变量地址 printf("%d\n", strlen(name + 1));//5 第二个元素以后的字符串长度

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: