C语言学习笔记

2018-06-18 03:50:32来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

dmr曾说过:C诡异离奇,缺陷重重,并获得如此大的成功。

一、C语言中的数据类型 1.1常量和变量 常量就是程序中不可改变其值的量,一般分为整形常量(短整型和长整形,无符号和有符号)、实型常量(单精度和双精度)、字符型常量、字符串常量。

c语言中的整形常量一般以十进制表示,但有的时候也可以用二进制、八进制、十六进制来表示。

变量不同于常量,变量在内存中是可以改变其值的,在定义变量的时候要提前声明变量的类型和变量名,定义变量的一般形式是:类型关键字 变量名;

例如一个简单的小程序:

#include (stdio.h)

int main()

(

    int a;

    float b;

    char c;

    a = 1;

    b = 2.5;

    c = 'A' ;

    return 0;

)

任何一个C语言程序都必须有一个主函数的入口,这个主函数就是main()函数 变量名是用户定义的标识符,用于标识内存中的一个具体的存储单元,在这个存储单元中可以放入任何的值,简单来说一个变量就相当于给常量起了一个名字,或者把这个变量理解为一个放物品的盒子,变量就是给这个盒子起的名字,而盒子里面可以放你想放入的任何东西。

另外在对于变量名命名的时候应该遵循标识符命名规则:

(1)标识符只能由英文字母、数字和下划线组成

(2)标识符必须以字母下划线开头

(3)不允许使用C关键字为标识符命名

(4)标识符可以包含任意多个字符,但一般会有更大长度的限制,与编译器相关,不过大多情况先不会达到限制

注意:标识符是区分大小写的 另外C语言中的注释是使用//(单行注释)和 /* */(多行注释)来完成的 注释之间不能嵌套,即一个注释中不能加入另一个注释 多个变量之间使用逗号作为分隔符 赋值运算符=,用于变量赋值,将右边的表达式的值赋值给左边的变量(左边只能是变量,不能是常量或者表达式)

sizeof()是用来计算数据类型或表达式所占用的能存字节数(sizeof是关键字,不是函数名)

2.简单的算术运算和算术表达式

2.1.算符运算符和表达式 C语言中的算符运算符就相当于我们小时候学习数学中的加减乘除,算符运算符又分为三种,一元运算符、二元运算符、三元运算符 其中一元、二元、和三元运算符的区别在于需要几个操作数

一元运算符(-) 取相反数

二元运算符(* / % + -)乘,除,取余,加,减

其中需要注意的是各运算符之间的优先级别

在C语言中有一个和数学中的不同之处在于 eg: 1/2和1.0/2 这两个的性质,前者是整数除法,后者是浮点数除法

注意:C语言中求余运算仅仅限定在两个数都是整数的情况下,不能对两个实数型数据进行求余运算 2.2增1和减1运算符

在这个知识点里面值得注意的是先加加和后加加的问题

如:int i=3; 之后分别执行这两条语句

m=i++;

m=++i;

对于语句一,m=i++的意义在于先执行m=i 的赋值表达式,之后再执行增值的 i++表达式

对于语句二,m=++i的意义在于先执行++i 的增值表达式,之后再执行m = i 的赋值表达式

同样,i - - 和 - - i 也是如此

总结:对于此类问题可以采用就近原则,对于增1和减1的操作,后置自增自减,先取变量本身的值,再进行自增和自减的操作;前置自增自减,先进行自增自减,再取变换后的值

2.3宏常量和宏替换 &意为取地址符号 #define PI 3.14159 即为定义了一个宏常量,注意不需加上等号,而且不以分号结尾

宏常量的问题:宏常量没有数据类型,编译器对宏常量不进行类型检测,只进行简单的字符串的替换,这种替换过程中容易产生错误

所以需要引入const常量

const 常量弥补了宏常量的一个缺陷,

如: const double PI = 3.14159; //定义类型的const常量PI

自动类型转换和强制类型转换

一般我们可以把每一个数据类型的阶段比做成不同大小的杯子 当我有一个可以放1L水的杯子,另外还有一个可以放5L水的杯子,我们可以把1L杯子里面的水倒入到5L的杯子里面,那么这个过程就相当于是一个自动转换的过程。

那么,我们现在来看C语言里的数据类型自动转换 char ,short---int---unsigned---long---unsigned---float---double---long double 从左往右就相当于从小杯子往大杯子里面倒水的一个过程,不会产生溢出现象,因此对数据来说是安全的 另外其实还有一种转换方式叫做强制类型转换 强制类型转换就相当于可以装5L水的杯子里面放了1L的水,之后我把这个1L的水全部倒入到一个1L的杯子里面,这样就实现了强制类型转换,可是,对于强制类型来说一般是危险的,如果大杯子里面的水小杯子放不下,那么就会产生一种数据的溢出,就像水会撒出来一样,数据就会丢失。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:C语言之函数

下一篇:51、52单片机使用矩阵键盘