9-25

数组
格式:int arr[4] = {1,2,3,4};
{0,1,2,3}
每一个数组都有下标,下标从零开始,所对应数组
下标是为了访问数组的元素
若是有N个数组,那么最后的下标就为N-1
如,要访问数组5
#include<stdio.h>
int main()
{
int arr[7] = {1,2,3,4,5,6,7};
printf("%d\n" , arr[4]);
return 0;
}数组

利用所学的while循环,打印数组里全部元素
#include<stdio.h>
int main()
{
int i = 0;
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
while(i < 10)
{
printf("%d\n" ,arr[i]);
i++;
}
return 0;
}ide

操做符
算数操做符:+,-,*,/,%(取模)
移位操做符:<< 左移 , >>右移
移的二进制位。
位操做符(二进制位):
&(按位与):0为假,1为真,假&真 = 假。只有真&真 = 真
如:3&5 = 001 = 1
3的二进制数 = 011
5的二进制数 = 101
3 & 5 = 001
|(按位或):一个真就为真
^(按位异或):对应二进制相同则为0,对应的二进制相反,则为1函数

赋值操做符
= 右边的值赋给左边
== 判断是否相等
复合赋值符
+= -= *= /= %=……
a = a+ 10 == a += 10
a = a - 20 == a -= 20测试

单目操做符:
!逻辑反操做:取相反,为真就取假,假 = 0指针

  • :负值
    +:正值
    &:取地址
    sizeof :操做数类型长度(单位为字节)
    siziof 计算数组个体数目 = 总大小 / 单个大小
    ~ :对一个数的二进制按位取反:
    x++:后置加加:先使用,再加加
    ++x:前置加加:先加加,再使用
    x--:后置减减:先使用,再减减
    --x:前置减减:先减减,再使用
    *:间接访问操做符
    (类型):强制转换
    int a = (int ) 3.14;(原来为double类型,如今为int类型)
    关系操做符:

    =
    <
    <=
    !=:测试不相等
    ==:测试相等
    逻辑操做符:C语言中。0为假,非零为真
    &&:逻辑与(而且)0 == 假 1 == 真
    ||:逻辑或(有一个为真,就为真)
    条件操做符:
    exp1?exp2:exp3: exp(表达式)
    []:下标应用操做符
    ():函数调用操做符生命周期

双目操做符:+ - * / %
三目操做符:作用域

原码,反码,补码
符号位:开头的第一位数字,即为符号位。
原码:直接按照正负写出的。
反码:符号位不变,其它位按位取反。
补码:反码加一。
-2
原码:10000000000000000000000000000010
反码:1111111111111111111111111111111111101
补码: 1111111111111111111111111111111111110
负数存的都是补码。 it

关键词
typedef :类型重定义(本身从新给关键词命名)
如:unsigned int number = 20;
typedef unsigned int u_int;
static:是用来修饰函数的。修饰局部变量,当static修饰局部变量时,局部变量的生命周期变长。
static修饰全局变量,做用域变短,只能再该文件使用,做用域变短
static修饰函数,改变了函数的连接属性。正常函数,具备外部连接属性。但被static修饰了事后,就成了内部连接属性,使其不能在其它文件使用了。
如:void test ()
{
static int a = 1; //a是一个静态局部变量
a++:
printf("a = %d\n" , a);
}
int main()
int i = 0;
while (i<5)
{
test();
i++;}
extern-申明外部符号io

#define定义的标识符常量和宏
宏:宏是在符号(标识符)的基础上加了个参数,宏是带参数的。class

指针指针:用来存放地址的,指针大小,在32位平台上是4byte。在64位平台上是8byte。