第四天笔记摘要
数组 一组相同数据类型变量的集合
定义:类型 数组名[];大小必须是常量或常量表达式>=1
内存:所有元素内存大小之和(连续内存)
数据元素的访问:数组名[ 下标];下标从0开始到数组大小-1
数组越界:当数组元素下标超出了表示范围
数组的静态初始化(定义)和动态赋值(循环+下标)
数组排序:冒泡排序(相邻元素两两相互比较,不满足排序准则交换亮两个元素值)
int n[m];//编译报错,数组大小不能是变量
int n[5]={1,2,3,4,5};//定义一个大小为5的int型数组n,并初始化
n[6]=100;cout<<n[6];//数组越界,可能导致系统崩溃
cout<<sizeof(n[2])<<endl;//求变量n(2)对应的数据类型所占的字节数
cout<<sizeof(n)<<endl;// 20 求数组的内存大小
cout<<sizeof(int)*5<<endl;//20
cout<<&[i]<<endl;//& 取地址符 获取数组的每个元素的地址
int a[]={1,2,3,4,5};//当数据元素全部被初始化,数组大小可以忽略
int a[5]={1,2};//数组元素部分初始化(按顺序),后面元素系统自动补0
int a2[5]={};//数组所有元素的值都为0
如果两个字符串字面值位置紧邻且仅由空格,缩进和换行符分割,则它们实际上是一个整体。
换行符\n或\012
纵向制表符\v
横向制表符\t
退格符\b
报警符\a
反斜线\
问好\?
双引号"
回车符\r
进纸符\f
单引号\’
以上字符不能直接使用
cout<<'\n';//转到新一行
cout<<"\tHi!\n";//输出一个制表符,输出Hi!,转下一行
定义在函数体内部的内置类型变量将不被初始化
定义在任何函数体之外的变量被初始化为0
extern int i;//声明一个变量而非定义(也可以定义)
int j;//声明并定义j
在函数体内部,如果初始化一个由extern标记的变量,会报错,extern定义的变量必须是全局的。