C 基础 (变量初始化)

变量使用之前要对其进行初始化。

char a   --->1个字节

int  b    --->2个字节

float c   --->4个字节

double d   --->8个字节

double i=10.11 和 double i;i=10.11是等效的。

变量的两个属性:

存在性:它具有一个数据类型并以一定的方式存在于内存中。

可见性:在它的作用域中是可见的。

变量的存储类型有四种:

auto   :重新访问值不发生变化,它是局部变量,每进入一次函数就初始化一次

{

auto int a  //auto可以省略不写。

}

register,通过保留字register来完成,它的作用域是和auto一样的,变量保留在cpu的寄存器中,只是对编译程序的一种建议,而不是强制类型的,即可以由系统来调度。

这种变量无法求地址,他是一种宝贵的资源

static  :可保存的,它的生命周期一直延迟到程序的结束。

局部变量不一定赋予初值,编译时对无值的赋予0(auto一定要有初值)

局部变量的作用域与auto,register相同

extern:在函数外部任意位置定义的全局变量

extern的作用域是全局的,在整个C文件中。位置从它被定义的位置开始。

它的生命周期是整个程序的运行期间。

当它和局部变量重名时就被局部变量屏蔽。如果需要就要加上extern保留字。

算术运算符号:+ - * /

他们的优先级别是-(负号) *  /  +  -,它们可以用()调整

左结合原则。

模运算符号%

它的优先级和结合方向同*  /相同

n%m的操作数均为整形数据。

余数的符号与被除数一致:

7%3=1

-2%3=-2

-3%-2=-1

-2%-3=-2

二元操作数据最好两侧一致。

赋值运算=

左操作数一定是变量,右侧可以为常量、变量和表达式。

类型与左端一致。

结合顺序是从右到左。算术运算符的优先级高于赋值运算符

++与- -

它是单目运算符号。它与变量结合。

但是如下的操作(i+j)++是错误的,因为不能返回值给指定的内存区域。

++a 与 a++和其他的语言一致。

如下例子:

i++*++i+i--*--i=?

 

 

 

#include  " stdafx.h "
int  _tmain( int  argc, _TCHAR *  argv[])
{
    
    
int  i = 3 ;
    printf(
" i=%d " ,(i ++*++ i + i --*-- i));

    getchar();
    
return   0 ;
}

执行结果:

类型转化:

强制类型转化:

(类型)表达式

逗号表达式:

从左到右执行,

a=(表达式1....表达式n),a为最后一个表达式的值。

逗号表达式的优先级在所有的运算符中是最低的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值