C语言程序设计————学习知识归纳总结(一)

C语言程序设计————学习知识归纳总结(一)

目录

一.简单叙述
二.C语言概述
2.1 简单的C语言程序介绍
2.2 运行C语言的简单步骤
三.数据类型,运算符与表达式
3.1 C语言的数据类型
3.2 常量与变量
3.3 运算符和表达式
3.3转义字符及其作用
3.4存储小知识

—————————————————————————————

一.简单叙述

2019年9月进入大学接触的第一门语言是C语言程序,大一学了一整年的C语言,在学习过程中随着难度的增加和迟迟未找到学习C语言的正确方法,渐渐丧失学习C语言的兴趣和动力,中途也为了备战计算机二级采用了仓促学习的方法,二级失败过后,仍然在断断续续的学习C语言,但还是没有真正的学会为什么去学习,如何去学习C语言,怎么才能把C语言真正的学会,自己独立敲代码,一直在徘徊,迷宫中走来走去,满满的焦虑感……时间渐渐过去,转眼间到了2021年3月,再过一年半我就要考研,过两年我就要毕业实习,回过头来发现自己一事无成,连一项技术都没有,自己对自己的未来更加焦虑了,不知道如何去实现,去追上周边优秀人的脚步。
2021年开学以来在一个偶然机遇的聊天当中,渐渐明白和学习的目的以及在网上微信公众号“编码之外”看到一篇文章,内容大致是讲关于非计算机科班出身如何学习提升自己学习也同时推荐了C语言学习以及其他语言的编程学习网站和后续的大致方向学习流程。
为了增强学习C语言的兴趣和在学习过程中可以有规划的学习,能及时汲取经验和不足,为后续学习做一个属于自己的历程,大家有兴趣可以看看,欢迎指出不足,能及时修改。(参考书籍:谭浩强C程序设计第三版)

二.C语言概述

1.简单的C语言程序介绍

# include <stdio.h>/*头文件,预包含*/

void main()/*main是主函数,有且只有一个,void,空,无任何返回值,后续会具体介绍*/
{
	printf("This is a C program.\n");/*分号标志一条语句结束*/
}/*一对花括号括起来是一个函数体*/

以上是一个简单的例子,还有 其他例子后续内容会具体详细介绍
C语言程序的大致特点:
(1)C程序是由函数构成的。一个C源程序至少且仅含一个main函数,也可以包含一个main函数和若干个其他函数
(2)一个函数由两部分组成:函数首部和函数体(函数章节会学习到)
(3)一个C程序总是从main函数开始执行,而main函数可以放任何位置
(4)书写格式自由,允许一行内写多个语句,但个人不建议
(5)每一个语句和数据声明的最后必须要有分号
(6)可以用//来对源程序加上必要注释,增加可读性

2.运行C语言的简单步骤

上机输入与编辑源程序(.c)→对源程序进行编译,得到目标程序(.obj)→将目标程序与库函数连接,得到可执行程序(.exe)→运行可执行程序,得到运行结果
附上存储小知识:硬盘上的数据调入内存条,CPU对内存条的数据进行处理,再者通过显卡,显示器,而主板是将这些联系在一起。

三.数据类型,运算符与表达式

3.1 数据类型

                                      整型------int                                                                     4
                                      短整型------short int                                                        2
                                      长整型------long int                                                         8

基本类型数据 浮点型【实数】 单精度浮点数------float 4
双精度浮点数------double 8
字符型------char 1
枚举类型------enum

                                             数组

构造类型数据 结构体
共用体

指针类型(*)
空类型(void)

3.2变量与常量

                           整数      十进制:传统的写法(十个基数(0,1,2,3,4,5,6,7,8,9)逢十进一)   D
                                        十六进制:前面加OX(0~9,A~F)或Ox(0~9,a~f)(十六个基数,逢十六进一) H
                                        八进制:前面0(数字)(八个基数(0,1,2,3,4,5,6,7),逢八进一)      O
                                        二进制:两个基数(0,1),逢二进一                                                                      B
                         备注:进制间的转换:十进制转化为二进制,十六进制,八进制,分别除以二,十六,八,然后根据相对应基数转化
                                                              二进制,十六进制,八进制转化为十进制分别用相对应的基数去按位数相乘

常量
浮点数 传统的写法 float x=3.2
科学计数法 float x=3.2e3//x的值是3.210^3
float x=3.2e-3//x的值是3.2
10^-3

                               字符       单个字符用单引号括起来   ‘A’
                                             双个字符用双引号括起来 “AB”    “A”=‘A’+‘0’

附件:补码知识专题
原码,也叫符号——绝对值码,最高位0表示正,1表示负,其余二进制位是该数字的绝对值的二进制位码。
简单易懂;加减运算复杂;存在加减乘除四种运算,增加了CPU的复杂度;零的表示不唯一
反码,反码运算不便,也没有在计算机中应用。
移码,移码表示数值平移n位,n称为移码量,移码主要用于浮点数的阶码的存储
补码,十进制转二进制
正整数转二进制
除2取余,直至商为零,余数倒叙排序
负整数转二进制
先求与改负数相对应的正整数的补码,然后将所有位取反,末尾加1,不够位数时左边补1
零的二进制全是零
二进制转化十进制
如果首位是0,则表明是正整数,按普通的方法来求
如果首位是1,则表明是负整数,将所有位取反,末尾加上1,所有数字就是该负数的绝对值
如果全是0,则对应的十进制数全是0

变量(本质上代表具有特定属性的一个存储单元,用来存放数据,也就是变量的值)
标识符:由字母,数字和下划线3种字符组成,且第一个字符必须为字母或下划线
可分以下三类:
(1)关键字:C语言预先规定了一批标识符,它们在程序中都代表着固定的含义,不能另作他用,这些字符称为关键字,例如:int,double,if,else,while,for等;
(2)预定义标识符:如define、scanf、printf、include。记住预定义标识符可以做为用户标识符,但因为它们有特定含义,一般不做用户标识符。
(3)用户标识符:可作为常量名、变量名、函数名、构造类型名等。
定义变量 数据类型 变量名 = 要赋的值
等价于 数据类型 变量名;
变量名 = 要赋的值

3.3 运算符和表达式

运算符
算术运算符 (+ - * /(取整) %(取余))
重点 ; /(取整)【左右均为整数结果为整数,左右均为实数结果为实数】;%(取余)【两侧均应为整形数据】

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

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

自增 自减运算符 (++ --)

位运算符 (& | ^(异或) << >> ~ )

赋值运算符 ( = += -= *= /= %= )

条件运算符(三目) ( ?:(expr1?expr2: expr3) )

逗号运算符 (A,B,C)分割一对表达式按从左到右的顺序进行求值,最终表达式的值是最后一项的值

求字节运算符 (sizeof) 计算某种类型在内存中的长度

指针运算符 (*和&)

强制类型转换运算符 (类型名)(表达式)

分量运算符 (. ->)

下标运算符 [ ]

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

在这儿先重点介绍几种基本的运算符,其他运算符后续内容会具体介绍
1.自增自减
前自增 ++i --i
后自增 i++ i–
相同点:最终都使i的值加一
不同点:前自增整体表达式的值是i+1后的值
后自增整体表达式的值是i+1前的值
程序举例一

# include <stdio.h>

void main()
{
	int i = 8;
	printf("%d\n",++i);
	printf("%d\n",--i);
    printf("%d\n",i++);
    printf("%d\n",i--);
    printf("%d\n",-i++); 
    printf("%d\n",-i--); 
}
/*结果依次显示9  8  8   9   -8    -9
说明是依次按顺序计算*/

程序举例二

# include <stdio.h>

void main()
{
	int  i = 5,j = 5 , p, q;
	p = (i++)+(i++)+(i++);
	q = (++j)+(++j)+(++j);
	printf("%d,%d,%d,%d\n", p, q, i, j);
	
}
/*结果依次显示
5+5+5=15,6=+7+8=22,8,8
说明是依次按顺序计算*/
			 

2.赋值运算符中的类型转换
(1)将浮点型(包括单、双精度)赋给整型变量时,舍弃浮点数的小数部分。
(2)将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。
(3)将一个double型数据赋给float变量时,截取前面7位有效数字,存放到float变量的存储单元中。
将一个float型数据赋给double变量时,数值不变,有效位数扩展到16位,在内存中以8个字节存储。
(4)将字符型数据赋给整型变量时,由于字符只占一个字节,而整型变量占两个字节,有两种情况如下:有符号高位补1,无符号高位补0
(5)将一个int、short、long型数据赋给一个char型变量时,只将其低八位原封不断的送到char型变量(截断)。
(6)将带符号的整型数据int型赋给long型变量时,进行符号拓展,高位补1;无符号时,高位补0
说明:各类数值型数据之间混合运算,先转化为高精度的一方然后再进行运算.

3.3转义字符及其作用

在这里插入图片描述
转义字符的使用程序举例

# include <stdio.h>

void main()
{
	printf(" ab c\t de\rf\tg\n");/*第一行左端开始输出 ab c,然后遇到\t,跳下一个Tab制表位置(8列),
	                              从第九列开始,输出 de,下面遇到\r,代表回车不换行,返回到本行最左端,输出字符f,
	                              然后再遇到\t在第9列输出g,遇到\n换行跳到下一行开头*/
	
	
	printf("h\ti\b\bj k\n");/*开头输出h,后面的t使当前位置跳到第9列,输出字母i,然后遇到\b\b退两格,回到第八列,接着输出字符j k*/
	
}
/*结果显示:f       gde
            h      j k */
			 

3.4 存储小知识

1.整数是以补码的形式转化为二进制代码存储在计算机中的实数是以IEEE754标准化为二进制代码存储在计算机中的。
字符的本质实际上也是与整数的存储方式相同
2.字节是存储数据的单位,并且是硬件所能访问的最小单位
3.字符的存储(字符的本质上与整数的存储方式相同)

  • 32
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟小小哲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值