初识条件语句
if / if else语句
int main(){
int a=1;
int b=2;
if(a>b)
printf("%d",a);
else()
printf("%d",b);
return0;
}
初识循环语句
while
for
dowhile
int main(){
int a=0;
while(a<100){
printf("在搬砖");
a++;
}
if(a>100)
printf("搬完了");
return0;
}
初识函数
例:
int add (int x, int y){
int z=x+y;
return z;
}
初识数组
数组:一组相同类型元素的集合
例:int arr[5]={1,2,3,4,5};
char ch[5]={'a','b','c'}; //不完全初始化,空位默认为0.
数组使用下标来访问的(下标从0开始)
操作符
-
算术操作符:+ - * / %
-
移位操作符:>> <<
左/右移位,是指二进制位
例:
int a =1 //1的二进制位是00000000 00000000 00000000 00000001 b = a << 1; //左移一位 00000000 00000000 00000000 00000010 (末尾用0补齐)
-
位操作符
& 按位与
| 按位或
^ 按位异或
-
赋值操作符
= += -= *= /= &= ^= |= >>= <<=
-
单目操作符
-
sizeof()操作符
int a=10; printf("%d",sizeof(int)); // 4 printf("%d",sizeof(a)); // 4 printf("%d",sizeof a); // 4 ,当sizeof的对象是一个变量时,()可以省略 int arr[10]={0}; printf("%d",sizeof(arr)); // 40 printf("%d",sizeof(arr[0])); // 4 //一种求数组长度的方法 int zs=sizeof(arr)/sizeof(arr[0]); printf("%d",zs); // 10
-
~ 按位取反(二进制位)
int a=10;
00000000 00000000 00000000 00000000b=~ a;
10000000 00000000 00000000 00000001补充:原码、反码、补码
在计算机中是以补码的形式存储的,但是打印是以原码的形式打印的
例:-1 原码:10000000 00000000 00000000 00000001 //第一位为符号位,其中0表示正,1表示负
反码:11111111 11111111 11111111 11111110 //符号位不变,其他0变成1,1变成0
补码:11111111 111111111 11111111 11111111 //补码的条件上+1
正整数的原码、反码、补码相等
-
故0的原码和补码都是00000000 00000000 00000000 00000000
-
0的补码为11111111 11111111 11111111 11111111
-
0的反码11111111 11111111 11111111 11111110
-
0的原码为10000000 00000000 00000000 00000001
即-1
-
-
++ –
++a //先++,后使用
a++ // 先使用后++
int a=10; int b=++a; //此时a=11,b=11 int c=b++; //此时b=12,c=11
-
强制类型转换
int a=(int)3.14;
//将本来的浮点型转化为整型
-
关系操作符
< > <= >= != ==
-
逻辑操作符
&& 逻辑与
|| 逻辑或
-
条件操作符(三目操作符)
exp1 ? exp2 :exp3
//如果exp1成立,那么就执行exp2语句,整个表达式的值为exp2的值,否则就执行exp3的语句,整个表达式的值为exp3的值
-
逗号表达式
int a=1; int b=2; int c=3; int d=(a=b+2,c=a+3,d=c+1);//逗号表达式会从左到右依次执行
关键字
-
不可以自己创建关键字
关键字不可以作为变量名
-
typedef 类型重定义
-
static 静态的
-
static修饰局部变量
static int a=1;
-
static修饰全局变量
static修饰全局变量,使得这个全局变量只能在自己所在的源文件 (.c) 内部可以使用其他源文件不能使用!
全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性但是被static修饰之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了! -
static修饰函数
static可以类比修饰全局变量,static修饰全局函数,使得这个全局函数只能在自己所在的源文件 (.c) 内部可以使用其他源文件不能使用!
-
-
定义常量和宏
*#*define
-
定义常量
# define max 100
-
定义宏
# define ADD(x,y) x+y int main(){ printf("%d\n",ADD(2,3)); //5 printf("%d\n",4*ADD(2,3)); //8 (4*2+3=11) return 0; }
初识指针
内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址
%p 打印地址
& 取地址
int * pa = & a; //其中,*表示pa为指针,int表示pa所指的对象类型为int类型
* pa = 20 ; //* 解引用操作,*pa 通过pa 找到a
指针大小:在36位计算机中,占4个字节
在64位计算机中,占8个字节
初识结构体
struct stu{
char name[10];
int age;
double score;
};
int main(){
struct stu s={"张三",20,85.5}; //结构体的创建和初始化
printf("%s %d %lf",s.name,s.sge,s.score); //架构体.变量
struct *pa =&stu;
printf("%s %d %lf",(*pa).name,(*pa).age,(*pa).score); //(*指针).变量
printf("%s %d %lf",pa->name,pa->age,pa->score); //指针->变量
return 0;
}