C语言基础 入门学习(一)
C语言基础 Day 1
一、定义一个变量
变量:在运行过程中可以改变的。 作用域:花括号之间; 生命周期:程序/函数运行完,变量内存自动回收。 定义变量时可用数字 字母 下划线 组成 局部变量未初始化打印出来为error,默认值的16进制为0xcccccc;
二、定义一个常量 常量:在运行过程中不能改变的。 定义常变量时一定要同时初始化. const:修饰的变量叫做常变量
三、宏定义 宏定义时变量要大写 。 后面的分号尽量不要加。例如int arr[PI]={};如果加了括号加会报错;会替换成arr[PI;] 重点: 预编译:宏替换,注释的替换(替换为空格);头文件的引入;
四、栈与堆
- 栈stack(包括栈顶和栈顶); 栈的特性:先进先出 。 1M—2M; main()函数所有定义的变量都存储在堆里。 2.堆heap 五、运算符 ():强转,函数参数;提升优先级 ~ :按位取反; >>:按位右移; <<:按位左移 ^:异或 &:与 |:或 例如: 11:0000 1101; ~11:1111 0010; 11>>1:0000 0110; 右移补符号位 右移相当于除法 11<<1:0001 1010 左移补数字零 左移相当于乘法 一个数扩大n倍 ,则左移2位 相当于11*2^n; 13:0000 1101 11&13: 0000 1001 11|13: 0000 1111 11^13: 0000 0110 异或:一样时为0,不一样为1.
++ --:自增,自减
```int a = 10; int b = a++;//tmp=a;b=tmp;a++; int c = 10 ; int d = ++c;//++c;tmp=c;d=tmp printf("a==%d/n b==%d/nc==%d/nd==%d/n",&a&b&c&d); a== 11 b==10 c==11 d==11
&&、||:逻辑与,逻辑或
int i=1,i2=0,i3=2; if(i++&&i2++&&i3++)//输出的 i=2,i2=0,i3=2 并且不执行if的内容 int i=1,i2=0,i3=2; if(i++||i2++||i3++)//输出的 i=2,i2=0,i3=2 并且执行if的内容
&& 全为真执行if语句,if条件内遇到假后面语句不执行。 || 有一个为真执行if语句,if条件内遇到真后面语句不执行。 *:指针,解引用,乘号
int a = 10; int* p = &a; * p = 100;//此时a的值为100 int** pp = &p;//二级指针 **pp = 1000;//此时a的值为1000
sizeof:求字节数
int* p = &a; char* p = (char*)&a;` cout<<sizeof(p);//所有的指针类型字节数都为4 cout<<sizeof p; cout<<sizeof(int); cout<<sizeof(++a);//sizeof在编译时期,因此不管里面运算值,不参与运算只求字节数。
下一篇:
做黑客需要懂几种编程语言?