当前位置:网站首页>日记(C语言总结)
日记(C语言总结)
2022-06-21 08:03:00 【Smart_auspicious】
首先明确:C语言与Java有部分相似之处,在Java开篇之前需要对C语言部分核心基础进行复习总结,以此算是忙完营销毕业论文后为了回到编程思维做一个准备工作。
目录
9. (乘除加减比较、逻辑与逻辑或、赋值)运算符的优先级顺序
Java和C语言的语法方面部分相似与不同之处
1. 区别
1. Java采用Unicode字符集,C语言通常采用的是ASCII字符集。
2. 在C语言中,char类型占一个字节,在Java中char类型占2个字节。
2. 相似
见后文。
一、main方法
Q:为什么需要main方法?
A:main方法即主方法、主函数,它标志程序运行时的入口点。main方法从头到尾标志着程序的全局开始和结束。
Q:main方法要注意什么?
A:首先一个工程有且仅有一个main函数,但一个工程可以有多个.c的文件。其次,main函数的位置可以出现在任意位置。最后,要注意返回值,一般为0。补充一句,C语言中main函数可以传参,但涉及到命令行参数和进程,若以后深入学习C语言可再学习。
int main()
{
return 0;
}
void main()
{
return;
}二、程序执行与结束
Q:程序执行在什么时候开始?在什么时候结束?
A:主程序从main的第一个{ 开始,最终结束是在最后一个} 。内部的局部程序代码块都用{ } 括起来,并且以大括号为起始位置。
Q:变量如何理解?
A:变量可以定义在main函数之外、之内或者其他的.c文件里,变量分为全局变量和局部变量。全局变量的作用域是整个工程。局部变量的作用域是变量所在的局部范围,比如某个if语句。变量的生命周期是变量的创建和销毁之间的时间段。
三、字符变量为何需要ASCll表
Q:字符变量为什么需要ASCII表?
A:在ASCII表中,一个整数(十六进制)是一个字符的映射。因为计算机是二进制,只存0和1,所以要把字符映射成计算机中的整数,才能进行运算,简而言之计算机底层用这个整数代表字符。

(注:图片来源于网络;ASCII,即美国信息交换标准代码,等同于国际标准 ISO/IEC 646。)
(全部ASCII表可见《史上最全ASCII码对照表0-255(%d)》)
Q:常用ASCII值要注意的有哪些?
A:有以下几个方面:
(1)退格(8)、制表(9)、换行(10)、回车(13)。不同应用程序对文本影响不同。
(2)空格(32)。
(3)阿拉伯数字从 0 到 9 分别对应 48 到 57。
(4)大写英文从 A 到 Z 分别对应 65 到 90。
(5)小写英文从 a 到 z 分别对应 97 到122。
(6)大小规则:空格 <数字 <大写字母 <小写字母。
(7)ASCII码最左边是最高位(b7),最右边是最低位(b0),第八位(b7)用作奇偶效验位。奇偶效验用于检验代码传送正确性,分奇效验和偶效验。奇效验是指正确的代码一个字节中1的个数必须是奇数,否则在最高位添1。偶效验是指正确的代码一个字节中1的个数必须是偶数,否则在最高位添1。
四、基本数据单位
Q:计算机中存储的基本单位是怎样的?
A:位(比特位)、字节、字(字符)是计算机数据存储的单位。位是最小的存储单位,每一个位存储一个1位的二进制码,一个字节由8位组成。而字通常为16、32或64个位组成。
Q:用公式进行表达。
A:分为32位计算机和64位计算机:
(1)1字节 = 8 比特位
(2)32位计算机:1字(字符)= 4字节= 32位
(3)64位计算机:1字(字符)= 8字节= 64位
五、变量数据种类以及所占字节大小
Q:除了要注意在Java中char类型为2字节,C语言中char类型为1字节以外,其他的数据类型及大小都是多少?
A:见下图。其中大端字节序和小端字节序的产生来源于共用体类型,测计算机是大端字节序还是小端字节序可用共用体进行检测。

六、二进制、八进制、十进制、十六进制
Q:如何理解二进制、八进制、十进制、十六进制?
A:进制用来计数,有进制基数和计算规则两大要素,进制基数表示在表示数字时不可再拆分的数字,计算规则指的是满进借退的规则。二进制、八进制、十进制、十六进制的两大要素表如下所示:
| 进制基数 | 计算规则 | |
| 二进制 | 0 1 2 | 满2进1,借1当2 |
| 八进制 | 0 到 7 | 满8进1,借1当8 |
| 十进制 | 0 到 9 | 满10进1,借1当10 |
| 十六进制 | 0到 9 和 A 到F | 满16进1,借1当16 |
Q:二进制、八进制、十进制、十六进制如何互相转换?
A:可将其他进制先转换为十进制,然后进行互相转化。在n进制与十进制转化中,用n的次方公式进行运算。
Q:计算机存储的是二进制,二进制如何进行运算?
A:二进制数在计算机存储中,最高位是符号位,0表示正数,1表示负数。整数的二进制有三种表示:原码、反码、补码,计算机运算的时候都以补码的方式进行计算,需要注意以下几点:
(1)正整数的原码、反码、补码相同。
(2)负(整)数存储的是补码。补码 = 反码 + 1 ;反码 = 原码符号位不变 + 其他位按位取反
(3)计算机底层进行的二进制减法运算,实际上是加负数运算。
七、指针基础
Q:指针与内存有何关系?
A:首先要理解内存的含义:
(1)内存是电脑上特别重要的存储器,计算机中所有的程序的运行都是在内存中运行的。
内存分为一个个小的内存单元,每个内存单元的大小是1个字节。
为有效访问到内存的每个单元,内存单元具有编号,这些编号被称为该内存单元的地址。
(2)内存是如何编号的:
32位—32根地址线—物理线—通电—1/0 2^32根地址线 (个内存单元)
64位—64根地址线—物理线—通电—1/0 2^64根地址线 (个内存单元)
然后要理解指针的含义:
(1)指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。
(2)要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。
最后我们可以得出,C语言可以通过指针去访问内存中某一块的内容。
Q:指针如何声明变量?
A:有以下几种情况:

八、语法、定义变量、语句(选择、循环、嵌套调用)
Q:通过C语言需要掌握一些基础语法,并学会定义变量,如何定义变量?
A:首先是语法修饰的常量(与变量区别开来):
const int num = 10;//const修饰变量将变为“指定不可反”常量。
#define MAX;//define自定义标识符常量。
enum 枚举类名 //(SEX)
{
类型1 //(MALE)
类型2 //(FEMALE)
类型3 //(SECRET)
};//枚举常量默认从0开始,每增加1。可赋初值。其次是定义变量
//数据类型 数据名称 = 初始值; eg:
int a = 1;
char s ="ha";Q:关于必要掌握的语句,选择、循环、嵌套调用如何理解?
A:以下是关于选择结构和循环结构的语句图(后文有详解):

关于函数嵌套调用可见下图:

首先是自定义函数及调用和函数嵌套调用:

其次是函数链式访问和函数递归:

九、Vc6.0、VS快捷键
Q:不同的程序快捷键不同,Vc6.0 和 VS 的快捷键分别是什么?
A:Vc6.0 快捷键可参考:VC6.0 快捷键
VS 快捷键可参考:VS 快捷键
熟能生巧,要多用自然记下。
十、与Java相似的语法
1. 代码块放在大括号内
代码块要放入大括号内,不同的语句块在不同的函数块要放入正确的大括号。
2. 语句以分号结束
编程时要记得最后以半角符号的“;”结束。
3. 函数调用的语法
函数调用参见上文。
4. 赋值运算符
赋值运算符为:= 。
逻辑判断运算符为:== 。
5. 赋值运算表达式
赋值运算时将等号右边的符号赋值给左边。
int a = 1;
int b = 2;
int a = 3;
int b = 4;
//最终a是3,b是46. 以“0x”开头来表示十六进制数
十六进制数的基数是16,采用的数码是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
其中A-F分别表示十进制数字10-15,十六进制数的技术规则是“逢十六进一”。
通常对十六进制数的表示,可以在数字的右下角标注16或H,但在C语言中是在数的前面加数字0和字母X即0X来表示。例如,12AF在C语言中表示为0X12AF。
7. &、|、^、!、&&、||
&、| 和 ^ 是位操作符, !、&& 和 || 是逻辑操作符,要注意分清。
| 位操作符 | &(按位与) | 两个位都为1时,结果才为1。即:有0则为0 |
| |(按位或) | 两个位都为0时,结果才为0。即:有1则为1 | |
| ^(按位异或) | 两个位相同为0,相异为1 | |
| 逻辑操作符 | !(逻辑反操作) | 逻辑反操作 |
| &&(逻辑与) | 遇假则停 | |
| | | (逻辑或) | 遇真则停 |
8. 三目运算符
三目操作符又叫条件操作符:
exp1?exp2:exp3
exp1成立,exp2计算,整个表达式的结果为exp2的结果。
exp1不成立,exp3计算,整个表达式的结果为exp3的结果。
9. (乘除加减比较、逻辑与逻辑或、赋值)运算符的优先级顺序

(注:图片来自于网络)
运算符优先级口诀:单目算术位关系,逻辑三目后赋值。
单目:+ +、- -
算术:+、-、*、/、%
位:位移运算符:<<(左移位)、>>(带符号右移位)、>>>(不带符号右移)
关系:<、>、<=、>=、==
逻辑:&&、||、!、&、|、^
三目:三目运算符(又称为三元运算符)A>B? x:y
赋值:=
10. 部分语法
(1)if

(2)for

首先是基本用法与break用法:

其次是continue与两个变形:

(3)while

(4)do-while

(5)switch-case

(6)break与continue
break表示永远终止,continue表示跳过本次操作。
要注意:continue不能在do while中使用。
-----------咻---------------------咻---------------------咻-------------------咻--------------------咻----------------------
下次不许拖拖拉拉。
边栏推荐
- [untitled]
- Global and Chinese market for packed gas chromatographic columns 2022-2028: Research Report on technology, participants, trends, market size and share
- Illustration Google V8 15: Hidden classes: how to quickly find object attributes in memory?
- [redis]-[redis underlying data structure]-sds
- 应用程序卡死,如何快速退出?
- 2021-06-16 STM32F103 exti interrupt identification using firmware library
- Upgrade Jenkins steps and problems encountered
- Definition and declaration problems in stm32
- Interview duck interview brush question website system source code
- unity里现实摄像头运镜并LookAt到物体前方 基于Dotween
猜你喜欢

Yyds dry goods inventory junit5 learning 3: assertions class

2021-06-16 STM32F103 EXTI 中斷識別 使用固件庫

2021-06-16 STM32F103 EXTI 中断识别 使用固件库

How MySQL closes a transaction

2022-2028 global section valve industry research and trend analysis report

There was a GC failure in the online go service. I was in a hurry

Practical application cases of digital Twins - coal mine

Illustration Google V8 14: bytecode (2): how does the interpreter interpret and execute bytecode?

Eureka的TimedSupervisorTask类(自动调节间隔的周期性任务)

Dynamic programming to solve the problem of looting
随机推荐
Send using queue mailbox
Qunhui dsm7 add kit source
showCTF Web入门题系列
One year experience interview byte Tiktok e-commerce, share the following experience!
2021-06-16 STM32F103 EXTI 中斷識別 使用固件庫
如何使用lerna进行多包(package)管理
Figure neural network and cognitive reasoning - Tang Jie - Tsinghua University
How to write attractive titles for short videos? Learn these tips to make your title more convincing
Multiplication and addition of univariate polynomial (20 points)
Construct URL and Base64 download in the form of binary stream for file download
Blue Bridge Cup: Candy
Rdkit | topological polarity surface area (TPSA)
Illustration Google V8 14: bytecode (2): how does the interpreter interpret and execute bytecode?
一元多项式的乘法与加法运算 (20 分)
[redis]-[redis underlying data structure] - Dictionary
[kotlin] first day
Eureka的TimedSupervisorTask类(自动调节间隔的周期性任务)
Zhongyi Antu submitted for registration: proposed to raise 600million yuan, with annual revenue of nearly 1.2 billion yuan
unity裏現實攝像頭運鏡並LookAt到物體前方 基於Dotween
【元宇宙3d大赛】