#include<stdio.h>
/*
块注释
*/
1、变量:在运行过程中可以改变的
=:左边:左值 右边:右值
作用域:花括号之间
生命周期:程序/函数运行完 变量的内存就会系统自动回收
int a=10;//a:局部常量 栈
int b=20;
int c=30;
char ch=‘高’;
char ch2=97;
printf("%d\n",ch2);//97
printf("%d\n",ch);//? char是1个字节,而一个汉字占两个字节,因此char型变量不能存储一个中文汉字
a=10;
a=30;
a=40;
//10=a;
int d;//error默认值为随机值
printf("%d\n",d);//报错 不能够使用,未初始化的局部变量
定义变量的名称:字母,数字,下划线
局部变量没有赋初值时,默认值为随机值
1、打断点
2、调试:逐过程,逐语句
2、常量:在运行过程中不可以改变
const:修饰的变量==》常变量 关键字
//1、预编译:宏替换,注释的替换(空格),头文件的引入。
#define:宏
#define PI 3.14159
#define SIZE 10
//int d;
PI;
int arr[SIZE]={};
const int a=10;//常量, 编译的时候确定它的值
int high=SIZE;
printf ("%d\n",high);
//a=20;error
/const int b;//定义常变量的时候,一定要进行初始化
b=20;/
3、运算符
():函数,提升优先级,强转
[]:数组元素下标
int a=10;
int b=a++;//tmp=a;b=tmp;a=a+1 先运行一遍程序,再自加
printf(“a==%d\n”,b);//10
int c=10;
int d=++c;// 先自加,再跑程序
printf(“a==%d\n”,b);//11
i–和--i与之算法相同
(2+3)*5;
int a=10;
printf("!!a==%d\n",!!a);//1,a=10为真,后面的自己意会。。。
char b=(char)a;
int arr[5]={1,2,3,4,5};
arr[0]=2;
//arr[5]=10;
float:
float f1=5/2;//2.000000
float f2=(float)5/2;//2.500000
float f3=(float)(5/2);//2.000000
float f4=5/(float)2;//2.500000
sizeof:
int a=10;
printf("%d\n",sizeof(a));
printf("%d\n",sizeof a);
printf("%d\n",sizeof(int));
int *p=&a;
char p2=(char)&a;
printf("%d\n",sizeof§);
printf("%d\n",sizeof(p2));
//所有的指针,不管什么类型全部为4个字节
printf("========");
printf("%d\n",sizeof(++a));//4 编译时期
printf("%d\n",a);//11
int arr[5]={1,2,3,4,5};
printf("%d\n",sizeof(arr[5]));//4
printf("%d\n",sizeof(3+4.5));//8
int a=10;
int p=&a;//:代表指针
p=100;//:间接访问符》解引用
printf("%d\n",a);//100
int **pp=&p;
**pp=10000;
->:指向符
~:按位取反
>>:按位右移
<<:按位左移
例:11:0000 1011
~11:1111 0100
11>>1:0000 0101==>5 11/21
11>>2:0000 0010==>2 11/22 11扩大8倍:11<<3
11<<1:0001 0110==>22 1121
11<<2:0010 1100==>44 1122
^:按位异或
&:按位与
|:按位或
例:11:0000 1011
13:0000 1101
11&13:0000 1001(两者相同取相同,不同取0)
11|13:0000 1111(只要有1就取1)
11^13:0000 0110(二者相同就为0)
+=:(-=,^=,|=用法相同)
例: a+=100//a=a+100