初识c语言的几天

     这几天 ,浅学了一下c语言。通过一些课程,了解到自己定义的变量的官方名称叫标识符,而且标识符有几种命名规则。标识符不能是32种关键字中的任何一个,只能有数字 字母以及下划线组成而且区分字母大小写,第一个字符不能是数字,名称中间不可以有空格,标识符最好不要超过31个字符但是其长度不受限制,除此之外标识符不能与库函数名称相同(库函数是程序开头<>里的)。

同时又了解到数据类型分为四大类:基本类型(整型,字符类型 ,浮点类型)空类型(void)指针类型 构造类型(数组 结构体 共用体 枚举)所谓数据类型 就是对数据分配存储单元的安排。

 上图是我编写的的一个程序 但是对于如此简单的程序,我没用一次性成功,main后面也许会少了括号,语句之后可能会少分号 ,成功之后我就尝试了一下\n这个换行符,来对比一下

 左边没有换行符 右边有换行符 结果就是这么有趣。

(1)整型

 (2)浮点类型(实型)

浮点型以指数形式将其各个组成部分分别存于空间之中。

浮点型有以下两种表示方法

(3)字符型

 字符类型所占字节数较少,字符型包括以下几种

 字符‘1’和整数1的概念不同,前者只是一个形状为‘1’的符号,在内存中以ASCII码形式存储,只占一个字节,整数1是以整数储存方式(二进制补码方式)储存的,占2个字节(或者占4个字节)

赋值

再回到学习通的课程,变量的赋值有两种方式 分别为先定义在赋值和定义的同时赋值,

 图一

 图二

如图所示,图一为第一种 图二为第二种。

如果等号左边的数据类型和右边的数据类型不一样,编译器会遵循左边的数据类型并将右边的转化成左边的 ,或者是省略一部分不写 如果左边是int 右边是3.14的话 系统会将小数点后面的数字省略,只管3 即最后输出的数字是3。

除此之外,还有常变量即一种特殊的变量,const是常变量的语句说明,定义常变量的时候需要加上const,必须在定义的同时赋值,。

常变量在程序运行的过程中,其值不会发生改变,这也就是他所体现出来的常量的性质。除此之外,系统不会给常变量分配内存而且在编译的时候会进行严格的类型检验以此避免出错。

除了以上提到的量我们还接触到了字符串常量 也就是双引号里面的字符序列,例如我们熟知的Hello World里面的“Hello World” 其在内存中的存放形式是连续存放字符的ASCII码值 然而末尾会加一个结束标志‘\0’ ,‘a’和“a”的储存形式和意义都不一样 后者的储存形式比前者多了\0。

表达式:是由操作数和运算符组成的序列,操作数可以是常量也可以是变量。

预算符分为三种,分别为单目(例如取负运算符-),双目(例如算术运算符+),三目运算符(例如条件运算符 ?:),在这几个之中有着严格的“等级”划分,也就是优先级了。

运算符则为算术>移位>关系>位逻辑(不包括单目位逻辑运算符)>逻辑运算符。除此之外还有结合性的关系。

(++和负号是同优先级)

除了单目运算符,赋值运算符和条件运算符是右结合性(也就是从右向左执行运算)其他的都是左结合性(也就是从左向右执行运算)。表达式求值一般是从高优先级向低优先级执行运算,如果操作数两边的运算符优先级一样,则按照c语言规定的结合方向执行运算

 在求余数运算的时候,余数的符号与%前面的数的符号一样。

逻辑表达式

 大致分为以上三种,“非”、“与”、“或” .!3的意思就是非3,3是真,非3就是假即0,3&&0也就是真和假,相当于数学的交集,也就是真交假,答案就是假:0,“或”则相当于并集啦!

优先性:!>&&>||

求闰年或平年

根据c语言的课,编写了一个小程序

 我将2022输入得到以下图片

 输入2020则是下面的样子

 位运算:

位运算是对整型数据进行的运算且符号位需要参与运算。

位运算有按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)、右移(>>)六种,以上只有按位取反是单目运算符,其余5个都是双目运算符。

1.按位与(&)

 先将数字转化成二进制在按照对应的位数相加,再将最后的结果转化为原先的进制。

2.按位或(|)

先将数字转化成二进制,再将数字按照对应的位置书写,再将每个位置按照或的运算法则运算,再将得到的二进制数值转化回原来的进制数

3.按位异或(^)

先将数字转化成二进制,在将每一位按照“相异为真,相同为假”运算

4.按位取反(^)

 

 按位取反就是将该数值的二进制数的每一位数取其相反的位,将“0”变成“1”。所以数的正负会发生改变,负数在计算机中是以补码的形式,将其转化为机器数要遵循规则,要先将该数按照右边绿色框框内的形式写,最左边是符号,再将那其余7位数字逆转 并在加一,得到最下面的就是我们要求的二进制数。

5.左移(<<)和右移(>>)

将数字对应的二进制数向左(右)移动,此时最右方(最左方)会空出一个位子同时最左边(最右边)也会少一个数字,这个数字我们就不要了,需要用0补齐,之后就得到了我们想要的数。

自增自减

首先我们需要了解一下两项规则,

(1)自增、自减运算,常用在循环语句中,使循环变量加(或减)1;以及指针变量中,使指针指向下(或上)一个地址。
(2)自增、自减运算符,不能用于常量和表达式。

(3)自增自减的结合性是自右向左的

i=2;

j= -i++; 

等价于j=  -(j++);即j=-i;i++

由于++和负号的优先级相同,所以按照c语言的结合性来算,从右往左。

求字节数

求字节数需要运算符sizeof(),有多种使用方法,sizeof(类型标识);

sizeof(变量名)或者sizeof 变量名。写完代码就试以下这个样子

 编译并运行之后得到以下结果

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值