【C语言基础——变量】

【变量】
1.变量声明:
变量说明的一般形式是:
    <存储类型>    <数据类型 >    <变量名> ;
2.变量初始化:
变量初始化只有一次, 声明时赋初值;

3.变量赋值:
可以赋值多次; 必须是声明后才能使用变量;

c程序 运行状态的 内存管理 
【存储类型】
【auto】 栈
【局部自动变量】栈
1. 作用域:局部
2. 初始值不定
3. 生命周期:使用时效有限, 声明产生, 语句体结束销毁;
【全局变量】 静态存储区
1. 初始值默认;0
2. 作用域:全局;
3. 3. 生命周期:是整个程序;

【static】 
【局部静态变量】静态存储区
1. 作用域: 局部
2. 初始值确定 默认0;
3. 生命周期:是整个文件;
【全局静态变量】静态存储区
1. 作用域:当前代码文件内;
2. 初始值确定 默认0;
3. 生命周期:是整个文件;

【register】
寄存器变量
1. 没有内存地址说法
2. 存取速度快; 

【extern】
外部变量
1. 一般引用外部的全局变量
2. 可以说是全局变量;

总结:
【全局】全局变量  全局静态变量
【局部】局部自动变量  局部静态变量

变量会有就近原则!

***一些名词***
【生命周期】
时效
【作用域】
范围

【局部】  
局部语句块

【全局】
整个程序

【运算符】
【算术运算符】
注意:
1. 实型不允许 做 % 运算!
2. 隐式强制转换会丢数据精度!

3. ++、 --;

前缀++a; 先自增,再参与运算;
后缀a++; 参与运算,后自增;
前缀--a;  先自减, 后参与运算;
后缀a--;  参与运算,后自减;

eg:
int i = 0;
int ret = 0;
ret = i++ + i++;   
思路:A=0 i=1  -->   B=1  -->  +  A+B==1 --> i = i+1  i==2;     
i = 2  ret = 1

【关系运算符】
1. = 和 == 
if(0 == i){ }

2. <=  >=  符号顺序;

3. >=  &&  <= 
   >=  ||  <= 
【逻辑运算符】

&&
||

【位运算法符】
1. ~  
2. &
3. |
4. ^
5. n<<4  n>>2

【向左位移】
有符号数&无符号数:  自动补零;    
【向右位移】
无符号数:自动补零; 有符号数,补符号位;

【?:】三目运算符
A ? B : C
(a>b)?a+1 : b+2

 类似:
if(判断表达式){ 语句块1 } else { 语句块2 } 

【,】优先级最低

注意:
&&  优先级比 || 高

【输入输出函数】没有IO
1. char a = 'a'; putchar(a);
2. char a = getchar();
3. 

指针  ==  地址

【作业】
(*)1、如何把一个无符号数的某位快速置1?
(*)2、如何把一个无符号数的某位快速清0?
(*)3、 unsigned int a = 0x20;
    a =  a>>2;
    a = ~a;
    a = ?
(**)4、用代码实现终端输入一行字符(包括空格和其他特殊字符),原样输出。 (控制语句)putchar getchar
(***)5、如何利用位运算把一个十进制数转化成一个十六进制数?(控制语句)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值