%为求余/求模,当其中一个为负数时,其结果满足**(a/b)b+a%b=a*
不能将数组赋值给数组。 可以只初始化数组的一部分,如int a[4]={0,1},其他的元素将被初始化为0,若想要圈内部初始化为0,则只需要int a[4]={0}。
sizeof()为整个char数组的长度,strlen()是有效字符的长度 getline(name,length)为读取整行,length为长度限制,
原始字符串: 在输入例如\n的字符时,不会被转义而是直接输出原本内容个,使用时在字符串前面加上R
可以以{}初始化其中的值,同样可以省略其中的值。
可以将多个枚举值设置为相同的量。 一种方法:state=STATE(1),枚举变量state将被设置为STATE中值为1的枚举值。
&代表取地址 *为解除引用运算符,对指针使用时,可以取得该地址储存的值 不允许直接将地址赋给指针,必须将整形的地址转换为指针类型赋值 值为0的指针被称为空指针,也就是nullptr。 delete将会删除指针指向的内存,并不会删除指针本身。
用new创建动态数组: 声明数组时就为数组分配了固定的内存,这种方式称为静态联编,在编译中就被加入了程序。 若使用new,则是在运行程序时根据需要创建数组,并可以动态选择数组的长度,这杯被为动态联编。 在释放是,要用delete [] ptr,若没有[],删除的则是指针当前指向的元素。 指针数组在进行+i时,实际上加的是它所指向的类型的字节数。 同样也可以用这种方式创建字符串,并用指针代替字符串的名称。
自动存储: 在函数内部定义的常规变量使用,在函数被调用时产生,在函数结束时被释放。静态存储: 在整个程序执行期间都存在,使用static声明或在函数外部创建可以得到。动态存储: 拥有单独的内存池,和自动与静态存储分开。数据的生命周期起不受函数或程序限制,但会导致内存不在连续,追踪内存位置更加困难。ep:array<int,5> ary 创建了int类型,长度为5,长度是固定的,使用静态存储中的空间,更加安全。 ary[-1]:代表将现在指针智子昂的元素向前移动两位