深圳公司网站建设大约多少钱,请人开发网站多少钱,安徽安庆邮编,m导航网站如何做淘宝客数组
当我们只是定义了数组#xff0c;而没有对数组进行初始化时#xff0c;那数组的值将是未定义的。
在对数组进行初始化时#xff0c;如果只对数组的一部分进行初始化#xff0c;编译器会将把其他元素自动设置为0。
#include iostreamusing namespace std;in…数组
当我们只是定义了数组而没有对数组进行初始化时那数组的值将是未定义的。
在对数组进行初始化时如果只对数组的一部分进行初始化编译器会将把其他元素自动设置为0。
#include iostreamusing namespace std;int main()
{int nums1[3] { 0 };cout nums1[0] nums1[1] nums1[2] endl;int nums2[3];cout nums2[0] nums2[1] nums2[2] endl;return 0;
}输出
0 0 0
57 0 2037520字符串
只有以空字符\0结尾的char数组才是字符串这是因为C或C在处理字符串时是以空字符作为结束标识的。
当初始化一个数组未指定长度时编译器会对自动计算长度通常这是一种很糟的做法但是这种做法对于字符数组初始化为一个字符串的情况下是更安全的因为字符串常量会隐式地包含结尾符。
#include iostreamusing namespace std;int main()
{char dog[5] {b,e,a,u,x};char cat[5] {b,e,a,u,\0};cout dog endl;cout cat endl;// char bird[5] birds; //编译报错。birds实际长度为6即默认结尾会含\0char fish[] fishs;cout fish endl;return 0;
}输出
beauxu
beau
fishs结构
有些信息在存储时并不需要占用一个完整的字节而只需占几个或一个二进制位。C 语言提供了一种数据结构称为位域或位段。所谓位域是把一个字节中的二进位划分为几个不同的区域并说明每个区域的位数。
C也允许指定占用特定位数的结构成员字段的类型应为整型或枚举且有以下限制
一个位域必须存储在同一个字节中不能跨两个字节。由于位域不允许跨两个字节因此位域的长度不能大于一个字节的长度。位域可以无位域名这时它只用来作填充或调整位置。无名的位域是不能使用的。
#include iostreamusing namespace std;struct bitTest {unsigned int SN: 4;unsigned int: 4; //4 bit unusedbool b1: 1;bool b2: 1;
};int main()
{bitTest bt { 14, true, false };// 结构体会以最大长度对齐即 SN填充 占4字节b1b2 占4字节cout sizeof(bt) endl; // 输出8return 0;
}指针
C允许将指针和整数相加加1的结果等于原来的地址值加上指向的对象占用的字节数。
#include iostreamusing namespace std;int main()
{int nums[3] { 1, 2, 3 };int* np nums;cout np np , nums nums , nums[0] nums[0] endl;cout np1 np , value *np endl; return 0;
}输出
np0x61fe0c, nums0x61fe0c, nums[0]0x61fe0c
np10x61fe10, value2