C语音基础与提高1

来源:互联网 发布:cf驱动辅助源码 编辑:程序博客网 时间:2024/06/13 03:32
C语言基础与提高1




1.基本数据类型
(1)整型int(一般占4个字节,TC环境中2个,一个字节=8bit)


整数,在目前绝大多数机器上占4个字节。TC环境中是2个字节


(2)单精度实型float(4个字节)


单精度浮点数,一般是4个字节长


(3)双精度实型double(8个字节)


双精度浮点数,一般是8个字节长


(4)字符型char
字符,一般是1个字节长
用来表示256个ASCII字符,或者0~255的整数(1个字节)


(5)枚举型enum




strlen()统计字符串长度,遇\0结束


const(金钟罩) 修饰只读变量,不能通过变量名去修饰对应内存的只读数据
     就近原则,靠近谁就修饰谁


volatile: 防止编译的时候被优化


sizeof():求数据类型长度


数据的表现形式有两种:


常量:
(1)整型常量:
十进制:18、-31


long int型常量 123l、123L、123456l、123456L


unsigned int型常量 123u、 123U
根据实际数据大小确定int型还是long型
以数字“0”开始的整型常量是八进制数
以“0x”或者“0X”开始的整型常量是十六进制




(2)实型常量
十进制小数形式 :123.45、456.78


指数形式 :1e-2、4.5e3


float型常量 123.45f、 456.78F、1e-2f、4.5e3F


long double型常量 123.45l、 456.78L、4.5e3L
缺省为double




(3)字符常量
’a’,’A’,’5’,’%’,’$’……
单引号内只能有一个字符,除非用“\”开头
就是一个普通整数,也可以参与各种数学运算


每个字符具有一个0~255之间的数值,可从ASCII表查出


注意:’5’和整数5的区别


字符的数学运算在密码学内用得比较多


用“\”开头的字符为转义字符


一些常用转义字符:
\n 换行
\t 水平制表
\r 回车
\ddd 3位8进制数代表的字符
\xhh 2位16进制数代表的字符


(4)字符串常量:字符串常量是一对双撇号括起来的字符序列.
合法的字符串常量:
  “How do you do.”, “CHINA”, “a” , “$123.45”


可以输出一个字符串,如
  printf(“How do you do.”);
C规定:在每一个字符串常量的结尾加一个 “字符串结束标志”,以便系统据此判断字符串是否结束。
C规定以字符’\0’作为字符串结束标志。




(5)枚举常量


变量






在进行赋值操作时,会发生类型转换


将取值范围小的类型转为取值范围大的类型是安全的


反之是不安全的






类型强制转换运算符“(类型)”
消除从大到小的警告


l = (long)i;


可以通过“(类型)表达式”的方式把表达式的值转为任意类型
强转时,你必须知道你在做什么


强转与指针,并称C语言两大神器,用好了可以呼风唤雨,用坏了就损兵折将








C的运算符:
(1)算术运算符 (+  -  *  /  %)


(2)关系运算符 (> <  ==  >=  <=  !=)


(3)逻辑运算符 (! &&  ||)


(4)位运算符   (<<   >>   ~   | ∧ &)


(5)赋值运算符 (=及其扩展赋值运算符)


(6)条件运算符 (?:)


(7)逗号运算符  (,)


(8)指针运算符 (*和&)


(9)求字节数运算符(sizeof)


(10)强制类型转换运算符( (类型) )


(11)分量运算符(.->)


(12)下标运算符([ ])


(13)其他 (如函数调用运算符())


基本算术运算符:  + - * / %
结合方向:从左向右




函数符号() 数组下标【】


单目运算符


算数运算符


移位运算符


关系运算符


逻辑运算符


三目运算符




以上运算符优先级由下而上递增




自增、自减运算符
  
作用是使变量的值增1或减1


如: 
++i,--i(在使用i之前,先使i的值加(减)1)


i++,i- - (在使用i之后,使i的值加(减)1)


i++与++i的区别:
  
++i是先执行i=i+1后,再使用i的值;
 
i++是先使用i的值后,再执行i=i+1。




逗号运算符:将两个表达式连接起来,又称为“顺序求
值运算符“,如:

3+5,6+8
逗号表达式 的值为14
一般形式:   表达式1,表达式2


求解过程:
  先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。




格式输出函数
printf(格式控制字符串, 输出项表列);
输出若干个任意类型的数据
格式输入函数
scanf(格式控制字符串, 地址表列)


格式说明符含义:
%d或%i按十进制有符号整数输出,正数的符号省略


%u按十进制无符号整数输出


%o按八进制无符号整数输出(不输出前导0)


%x或X按十六进制无符号整数输出(不输出前导符0x)


%按字符型数据输出


%s按字符串数据输出


%f按小数形式输出(6位小数)


%e或E按指数形式输出实数


%%输出%本身


%g或G选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0




m  表示数据占用的宽度,正整数


n  对实数,指定小数位数(四舍五入)
   
对字符串,指定实际输出位数


l  加在d、o、x、u前:输出长整型
   
加在f、e 、g前:输出双精度型


h  加在d、o、x 前:输入短整型


-  输出数据在域内左对齐(默认右对齐)


+  指定在有符号数的正数前显示正号(+)






if(表达式1)语句1
   
else if(表达式2)语句2
   
else if(表达式3)语句3
       
……
  
else if(表达式m)语句m
   
else  语句n




switch语句的格式:


switch (表达式)




case 常量表达式1:语句1; break;
    
case 常量表达式2:语句2; break;
    

    
case 常量表达式n:语句n; break;
         
default      :语句n+1; break;







while (表达式) 语句
    
当表达式为非0值时,执行while语句中的内嵌语句。其特点是:先判断表达式,后执行语句。




do 
    
循环体语句


while (表达式);


do-while语句的特点:先执行循环体,然后判断循环条件是否成立


for(表达式1;表达式2;表达式3) 语句


continue语句 
  
作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定.




break语句 
  
break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句


注意:break语句不能用于循环语句和switch语句之外的任何其他语句中。