变量与常量
1,变量
变量:在运行过程中可以改变的
变量名必须以下划线或者字母开头,可以由下划线数字字母组成。
作用域:{ }之间。
生命周期:程序/函数运行完 变量的内存会由系统自动回收。
int a = 10;//a:变量
= 左边的叫左值 右边的叫右值。
2, 常量
常量:在运行过程中不可改变的
常量的定义 使用const或#define
const:修饰的变量叫常变量 关键字
使用const 定义时一定要进行初始化
const int a=10;//常量 编译的时候确定他的值
#define 宏 使用宏定义的要大写
在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。
(预编译: 宏替换 注释的替换(空格) 头文件的引入)
#define SIZE 10
int main()
{
int high=SIZE;
printf("%d/n",high);
return 0;
}//打印结果 10
运算符
() | 函数,提升优先级 |
---|---|
~ | 按位取反 11:0000 1011 ~11:1111 0100 |
>> | 右移一位 相当于除法 /2^1 |
<< | 左移一位 相当于乘法 x2^1 |
& | 逻辑与 |
^ | 异或( 一样的为0,不同的1) |
! | 逻辑非 |
++ | 自增运算符(++ 后置先赋值 再加,前置则相反) |
- - | 自减运算符(同上) |
* | 1乘法运算符 2复合赋值运算符 3地址值符4指针定义符…… |
sizeof | 求当前字符的字节数(所有的指针,不管什么类型都为4个字节) |
% | 二元运算符 |
?: | 用于return中 用于判断 |
以下为一些实例
int i=1
int i2=0;
int i3=2;
if(i++||i2++||i3++)//前面为真的,后面不计算
printf("%d,%d,%d\n",i,i2,i3);//打印结果 2 0 2
int a = 10;
printf ("%d\n",sizeof(a));//4
printf ("%d\n",sizeof a)//4
printf ("%d\n",sizeof (int ))//4
int *p =&a;
char *p2 = (char*)&a;
printf ("%d\n",sizeof (p)); printf ("%d\n",sizeof (p2));//所有指针,不管什么类型的全部为4个字节
printf ("%d\n",sizeof (++a)); //4 sizeof 编译时期 不参与运算
printf ("%d\n",a); //10
int arr[5]={1,2,3,4,5};
printf ("%d\n",sizeof (++a));//4
printf ("%d\n",sizeof (3+4.5));//8
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
printf ("%d\n",10%3);//1
printf ("%d\n",-10%3);//-1
printf ("%d\n",-10%-3);//-1
printf ("%d\n",10%-3);//1
调试程序
步骤:
1 打断点
2 调试
逐语句
逐过程