变量小结。

空白符:空格符,制表符,换行符

变量名命名规则:1:变量名字只能由字母和数字组成且第一个字符必须是字母(下划线也算字符)

                               2:系统库函数经常使用下划线作第一个变量名字,所以尽量不要使用下划线作第一个元素  变量名区分大小写

 

标识符: 变量名 ,函数名,宏名,语句标号

 

浮点型常量自动处理为double型。

一个字节大小的字符都可以通过’\N’来表示如’\012’(八进制) ASCII回车换行符’\xA’(十六进制)

 Wchar_t宽字节类型常量。在<stddef.h>中定义。

‘a’和”a”的区别,前者是单个字符是一个整数.系统为他分配一个字节存储单元,后者用一个字符数组表示包括一个字符字母a和字符串结束符’\0’,系统为他分配俩个字节存储单元.

enum 枚举常量 ,如enum Boolean{false,true} 如果未指明枚举常量的值,则第一个为0,第二个为1,第三个为2,依次类推.

 

const 可应用于任何变量定义语句,说明其值制度, const若限定数组,则说明每个数组每个元素不可修改.

 const最主要的用处是保护通过指针传值的函数实参不被函数修改。

const 限定的变量只能砸定义时给初值,存放在只读存储区(ROM)。

float 在内存中占4个字节

double 占8 个字节

long double 占10个字节.

<float.h><limitLenits.h>中定义.

1.19e-5等价于1.19乘10的负5次方.

静态数据区中的变量不是自动型的,在编译时就已经确定存储空间.所以为其初始化必须是一个常量表达式. 默仍情况下自动赋值0,char型赋值’\0’.

而堆栈区或寄存器区中的变量是自动型,不会默认赋值.

字符型的ASCII码值是一个整型数据,也就是说字符型可以当做整型使用,

Int ch ch-‘A’成立。

但是倒过来一个整型数据不可以当做字符型使用

如果外部变量定义在使用之后则使用时需要用extern声明如extern int maxlen.

如果程序有多个源文件假设file1定义的变量file2 和 file3需要使用那么file2

和file3就需要extern声明语句,工程上,常规做法,将外部变量和外部函数集中在一个独立的文件中声明,即头文件,在其他源文件使用#include将其包含。

=号左边只能是变量,不能使表达式或常量,赋值号右边可以是表达式,也可以是变量或常量.

运算符

“/”可以作用于整型数据(包括整型,字符型,枚举型)结果只保留整数部分和实型数据(实数,或浮点数)结果为实型数据..

“%”只能用于计算整型数据.不能用于实型数据

二元算术运算符全市左结合,即从左向右结合.

算术运算符并未规定求职顺序,假设i=1,(++i)/(i--)不同系统可能结果不同.

C语言规定了求值顺序的只有&&|| (表达式左边成立时将不执行右边.自左向右), (自左向右)和? : (自右向左)

二元运算符从左向右,医院运算符从右向左

处理i+++j这样表达式,编译器采用贪心法,即从左到右取尽可能多地有意义的字符,所以i+++j等价于(i++)+j.

自增自减运算符只作用于变量,不能做用于表达式,(i+j)++非法.i+++++j非法.

C语言 6中 关系运算符

>,>=;<,<=,==,!=

所有关系运算符优先级低于算术运算符。

,逗号表达式把俩个表达式链接在一起组成一个表达式,其求值过程是分别求俩个表达式的值,并以表达式2的值作为整个表达式的值。先求第一操作数,再求第二操作数。

int i=0,j=0,k=0;

k=++i,j=i++,j+++i;

结果

i=2,j=2,k=1


 

C语言唯一一个三元运算符 ? : 结合方向自右向左,

x<y?x:y<z?x:z等价于 x<y?x:(y<z?y:z)

表达式的最后类型讲师表达式中出现过的最高类型(字节数最长的类型).

位运算符

&按位与 用于屏蔽一个整数中的某些位,如果i=i&0x0F(将i低四位意外的所有位设置为0)

|按位或  用于设置一个整数中的某些位。

^按位异或   将 来个操作数对应为不同的位设为1,相同的位设置为0

<<按位左移  左移右边空出的位用0填

>>按位右移 空出的位用0填

~按位取反 将每个0化为1,1化为0;

 

i=i+4等价于i+=4;大部分编译器 处理 i+=4比处理i=i+4效率更高。

variable op=expression 等价于variable=variable op (expression)

a/=b+10.0 等价于 a=a/(b+10.0)而不是a=a/b+10.0

 

 

实型数据不懂。。记得看判断浮点数是否大于0不是 a>0

而是 a>1.0e-7

 

编译器处理同优先级的运算符的求值顺序为从左至右。

运算符优先级一般一元运算符优先级高,赋值运算符优先级低,算数运算符优先级高,关系和逻辑运算符优先级低。关系运算符优先级高于逻辑运算符,逗号运算符优先级最低。

 

类型转换。

自动转换,低类型(字节少)转高类型。强制转换。 高到低,但可能造成信息丢失。 相同字节数也由高低之分入 long转化为unsigned long

运算符具有不同类型时,先进行类型转换,再运算。

sizeof 求类型字节数 int a, sizeofa  sizeof(int)类型名必须加括号,变量名可不用。


isdigit

原型:extern int isdigit(char c);

用法:#include <ctype.h>

功能:判断字符c是否为数字

说明:当c为数字0-9时,返回非零值,否则返回零。

附加说明 此为宏定义,非真正函数。

一般来说<math.h>中定义的数学二函数将使用双精度数据

类型转换顺序不同,可能会丢失值

011与11的区别前者是八进制整型常量,后者是十进制整型常量。

一个char型指针必须指向一个字符串如 char *p=”a”;正确,char *p=’a’;错误。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值