此文章为个人学习时记录笔记,顺便试试MarkDown,不是教程~。

C语言学习笔记

Mac系统的使用

Finder 文件管理系统

Dock 快捷栏

系统偏好设置

Safari浏览器

App Store

常用快捷键

指令

作用

CMD + 空格

切换输入法

CMD + C

拷贝

CMD + V

粘贴

CMD + A

全选

CMD + S

保存

CMD + X

剪切

CMD + Tab

切换应用程序

CMD + F

查找

CMD + N

新建

CMD + Shift + 3

截全屏

CMD + Shift + 4

截选中部分

CMD + Z

撤销

CMD + Shift + Z

恢复撤销

终端常用命令

命令

作用

ls

显示当前目录下的子目录

pwd

查看当前路径

cd 子目录名

进入当前子目录(有空格!)

cd..

返回上一级目录

clear/ctrl+l

清屏

tab

自动补齐

touch test.txt

新建文件 test.text

open test.txt

打开文件 test.txt

rm test.txt

删除文件 test.txt

mkdir test

新建目录 test

rmdir test

删除目录

rm -rf test

删除文件或目录 test

练习:

​ 在桌面通过命令新建一个目录。进入到该目录,在目录里新建一个文件,打开文件,写入一句话,关闭文件,删除整个目录,包括里面的文件。

进制转换

引入二进制的原因 计算机是以二进制的形式进行数据存储的,因为二进制存储简单。

引入八进制和十六进制的原因 八进制和十六进制能更好的表示二进制。

二进制- >十进制

二进制:用0,1来表示所有的自然数

十进制:用0~9来表示所有的自然数

八进制:用0 ~ 7来表示所有的自然数

十六进制:用0--9,a—f来表示所有的自然数

规律 任何一个二进制数,从右向左依次数起,分别为第0位,第1位,第2位......,找到所有的数值为1的位数,用2的位数次方依次相加,得到十进制结果。

11001(2) = 25(10)

十进制- >二进制

倒除法

45(10) = 101101(2)

98(10) = 1100010(2)

123(10) = 1111011(2)

八进制- >二进制

三位一取:每1位8进制数用3位2进制数来表示。

54(8) = 101 100(2)

000 0

001 1

010 2

011 3

100 4

101 5

110 6

111 7

十六进制- >二进制

四位一取 : (高位的0可以省略)

2d (16) = 0010 1101(2) = 101101(2)

二进制- >八进制

三位一取

1011(2) = 001 011(2) = 13(8)

二进制- >十六进制

四位一取 : 从低位向高位数

101101(2) = 0010 1101 = 2d(16)

原码 补码 反码

真值:一个数的十进制表示形式

机器数:一个数的二进制表示形式

原码

由符号位和机器数组成,最高位表示符号位。1表示负数,0表示正数;其余位数用真值的绝对值得二进制表示。

真值

源码

1(10)

0 000 0001(2)

-1(10)

1 000 0001(2)

结论 计算机不以原码的方式进行数据存储,因为原码会出现计算错误。

反码

正数的反码是原码,附属的反码是原码的符号位不变,其余位数按位取反(0变1,1变0);反码的反码是原码。

1

0 000 0001 原码 0 000 0001 反码

0 000 0001 反码 1 111 1110 反码

-1

1 000 0001 原码 1 111 1111 反码

1 111 1110 反码 1 000 0000 原码

-0 真值

结论 计算机不以反码的方式进行数据存储,因为反码解决不了0的问题。

补码

正数的补码是原码,负数的补码是反码+1;补码的补码是原码。

1

0 000 0001 原码

0 000 0001 反码 0 000 0001 补码

0 000 0001 补码 1 111 1111 补码

-1 +

1 000 0001 原码 0 000 0000 补码

1 111 1110 反码 0 000 0000 原码

1 111 1111 补码

0 真值

结论 计算机是以补码的形式进行数据存储的。

内存大小

内存是由大量开关组成的,每个开关有两种状态,0表示关,1表示开,每个开关只能存储一个值,用1bit表示。

一个字节存储范围是:-128 ~ 127

1byte(字节)=8bit

1kb=1024byte

1Mb=1024kb

1Gb=1024Mb

1Tb=1024Gb

注意 计算机分配内存的最小单位是字节。

终端

命令模式

编辑模式

VI编辑器

用来编辑C代码(C源文件后缀是 .c)

新建或打开.C源文件

vi test.c

从命令模式切换到编辑模式

i

退出编辑模式,返回命令模式

ESC

保存并返回

:wq

编译代码(将.c源文件编译成可执行文件)

gcc test.c -o t

运行可执行文件

./t

变量与常量

变量:值可以改变的量

常量:值不可以改变的量

定义变量

数据类型 变量名;

常见的数据类型

整形

类型

16位系统

32位系统

64位系统

short(短整形)

2字节

2字节

2字节

int(整形)

2字节

4字节

4字节

long(长整形)

4字节

4字节

8字节

无符号的(unsigned)

unsigned int a = 3;

unsigned short b;

浮点型

float //(单精度)小数点后3-6位 4字节

double //(双精度)小数点后13-16位 8字节

字符型

char 1字节

变量名

标示符:只能由数字、字母、下划线组成,但是不能以数字开头(不能以关键字命名)

变量名遵循标示符的命名规则

int a;

int //数据类型

a //变量名

; //语句结束符

变量的赋值

a=4;

a //变量名

= //赋值运算符

4 //常量

变量的初始化

int a = 3;

```c

printf("hello world"); //屏幕上显示hello world

printf("%d",a); //屏幕输出变量a的值

常用的格式符

%d 十进制整形

%f 浮点型

%c 字符型

%ld 十进制长整形

%lf double

%.2f 保留小数点后两位(四舍五入)

%.2d 保留两位整数

%o 八进制整型

%0x 十六进制整型

\n 换行

整数的表示形式

十进制(默认)20

八进制 020

十六进制 0x20

字符型

char c;

c = ‘A’;

c //字符型变量

‘A’ //字符型常量

【注】字符型 常量是由一对 单引号 括起来。

ASCII码

字符常量的十进制表达形式。

‘0’ 48

‘A’ 65

‘a’ 97

转义字符

本身并不会显示,但是具有特殊意义的一类字符(一般用在printf里)

\n //换行

\t //tab

\r //回车不换行(覆盖)

\ //打印 \

%% //打印 %

运算符

算术运算符

+加法运算符 - 减法运算符

*乘法运算符 / 除法运算符

%模运算符(求余运算符) 5%8=5 8%5=3

相同数据类型变量做算术运算,结果类型不变;如果是两个整数做除法运算,结果仍然是整数,小数部分被舍弃(不四舍五入)

不同数据类型变量做算数运算,遵循以下规则:

整形向浮点型看齐

单精度向双精度看齐

短字节向长字节看齐

有符号向无符号看齐

强制转换运算符(不建议使用)

(数据类型)表达式

float a = 3.14;

int

a=(int)f;

注 强转之后,f本身值不发生变化。

float a = 3.14;

float b = 4.1;

int c = (int)(a + b);

自增运算符

结果:变量的值自加1

变量++:先使用,后+1

++变量:先+1,后使用

int a; int a;

int i=5; int i=5;

a=i++; a=++i;

//结果:a=5,i=6 a=6,i=6

自减运算符

结果:变量的值自减1

变量++: 先使用,后-1

++变量: 先-1,后使用

关系运算符

> //大于

< //小于

== //等于

!= //不等于

>= //大于等于

<= //小于等于

==与=的区别

关系运算符主要用于条件语句中

关系表达式的值,只有真和假两种结果,如果为真则值为1,如果为假,则值为0。

逻辑运算符

&& //逻辑与

|| //逻辑或

! //逻辑非

逻辑与(&&)

逻辑与的表达式可以有无数个。

表达式1

表达式2

逻辑与

值 只要有一个为假,结果为假。

逻辑或(||)

逻辑或的表达式可以有无数个。

表达式1

表达式2

逻辑与

值 只要有一个为真,结果为真。

逻辑非(!)

表达式

逻辑非

值 非零为真,零为假。

复合运算符

+=、-=、*=、/=

a+=b; => a=a+b;

a*=b+3; => a=a*(b+3);

逗号运算符

表达式1,表达式2,表达式3,......,表达式n;

执行过程

每个表达式依次执行一遍。

返回值

返回最后一个表达式的值。

条件运算符

表达式1 ? 表达式2 : 表达式3;

注 条件运算符是唯一的一个三目运算符

执行过程

先判断表达式1的值

如果表达式1的值为真,那么执行表达式2,不执行表达式3;

如果表达式1的值为假,那么执行表达式3,不执行表达式2。

返回值

先判断表达式1的值

如果表达式1的值为真,那么返回表达式2的值

如果表达式1的值为假,那么返回表达式3的值。

int i=2;

int j=2;

3>2 ? i++ : j++;

格式化输入输出

printf(“%d”,a); //格式化输出

scanf(“%d”,&a); //格式化输入

条件语句

if else

如果。。。。那么。。。。

if(表达式)

{

//语句;

}

执行过程:

如果有表达式的值为真,那么执行语句

否则,跳过if,继续向后执行。

如果。。。。那么。。。。否则。。。。

if(表达式)

{

//语句;

}

else

{

//语句2;

}

执行过程

如果有表达式的值为真,那么执行语句1

如果有表达式的值为假,那么执行语句2。

switch case

switch(表达式)

{

case 常量1:

//语句1;

break;

case 常量2:

//语句2;

break;

case 常量3:

//语句3;

break;

...

case 常量n:

//语句n;

break;

default:

}

case分支可以有无数个

default分支可有可无

break必须写,用来跳出switch语句

case后面跟的是常量

循环语句

while

while(表达式)

{

//语句;

}

执行过程

当程序执行到while循环式,先判断表达式的值

如果表达式的值为真,那么执行循环体语句

然后再判断表达式的值,如果仍然为真,继续执行循环体语句

直到表达式的值为假,循环结束。

注意

问题需要有规律,才可以使用循环

需要有能使循环终止的条件

需要有使循环执行的循环变量

do while

do

{

语句;

}while(表达式);

for

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

//语句2;

}

执行过程

先执行语句1,判断表达式的值

如果表达式的值为真,那么执行语句2,执行语句3

再判断表达式的值,如果仍然为真,继续执行语句2,执行语句3

再判断表达式的值,知道表达式的值为假,循环终止。

continue:结束本次循环,继续下一次循环;

注 当程序遇到continue时,continue后面的语句就不会被执行了,继续去循环下一次。

break:用来终止循环(可以使用在任何循环中)。

c语言中否则指令不能用,C语言学习笔记相关推荐

  1. c语言中预处理指令的作用,C语言中常用预处理指令

    转载自 https://blog.csdn.net/farsight2009/article/details/58602886 姓名:张艳博 学号:17021223249 [嵌牛导读]: C语言中常用 ...

  2. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

  3. Python语言入门这一篇就够了-学习笔记(十二万字)

    Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...

  4. SVO中 Inverse Compositional Image Alignment方法的学习笔记

    SVO中 Inverse Compositional Image Alignment方法的学习笔记 这篇文章 光流法简介 逆向光流法 结尾 这篇文章  在SVO系统中的"Relaxation ...

  5. 0.《新概念51单片机C语言教程》(郭天祥)学习笔记

    看到之前的阅读量,有标题党的嫌疑,再接再厉,加油坚持自己的文风,相信会写的越来越好:) 继续更(一个人,一个记事本,一个PDF阅读器,装备全靠打) <新概念51单片机C语言教程>(郭天祥) ...

  6. c语言中栈堆,全程剖析C语言中堆和栈的区别

    C语言中堆和栈的区别 1.申请方式 (1)栈(satck):由系统自动分配.例如,声明在函数中一个局部变量int b;系统自动在栈中为b开辟空间. (2)堆(heap):需程序员自己申请(调用mall ...

  7. c语言中有关随机数的程序,C语言中随机数相关问题

    用C语言产生随机数重要用到rand函数.srand函数.及宏RAND_MAX(32767),它们均在stdlib.h中进行了声明. int rand(void);//生成一个随机数 voidsrand ...

  8. 在c语言中怎么返回引用参数,C语言函数 函数的声明 C语言的头文件 #include的用法 形参和实参 函数的返回值 - 猫扑天空...

    C语言函数 一.是什么? 是指编程中对一块功能代码的封装,可以理解一个程序片段 二.有什么用? 可以封装代码,方便调用,提高复用性 三.怎么用? 定义:  返回值类型  函数名(形参类型 参数名1-. ...

  9. 单片机c语言中的循环语句,单片机c语言教程:C51循环语句

    循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的( ...

最新文章

  1. 450g吐司烘烤温度_美晨烘焙丨会吐蛋黄的黄金吐司
  2. C#: static关键字的作用
  3. 安装python后如何打开-Python的安装与使用
  4. OpenCV在图像上画线、矩形、椭圆、多边形、填充的多边形、圆、显示文字
  5. SQL Server 2014 安装小记
  6. 2019人工智能实战 第六次作业 段峙宇
  7. 虚拟服务器关机返回用户信息,在Linux服务器关机前向用户显示一条自定义消息...
  8. android游戏开发框架libgdx的使用(十五)—TWL布局
  9. win10关机后自动重启_win10电脑关机后自动开机怎么解决
  10. epoll关于ET、LT模式和socket非阻塞模式的几个总结
  11. wxpython textctrl_wxPython控件学习之TextCtrl(一)单行文本框
  12. linux 内存管理_真香!Linux 原来是这么管理内存的
  13. Javashop电商系统7.0发布
  14. WeX5和BeX5比较
  15. 微信人工客服24小时在线电话
  16. zencart php5.6环境,BlueHost主机一键安装ZenCart图文教程
  17. mysql ndb同步_MySQL NDB Cluster 7.5.16 部署OGG同步
  18. Appium+python(1):python运行真机App程序示例
  19. Vue + Element UI 实现权限管理系统 前端篇(六):更换皮肤主题
  20. (ACWing yxc算法基础课)习题课1.1

热门文章

  1. “德宏古茶”平台 开创互联网+茶叶新模式
  2. windows ORA-00020: maximum number of processes (150) exceeded
  3. 沈君山《浮生三记》小传部分读书笔记
  4. 行驶车辆状态估计,无迹卡尔曼滤波,扩展卡尔曼滤波(EKF UKF)
  5. C# 中TextBox控件如何限制输入的字数?
  6. qt 显示输入法的上箭头_QQuickWidget中文输入法问题的正确解法
  7. 大数据BAT经典面试题
  8. matlab fread精度,matlab中fread函数的应用
  9. Android 桌面小组件
  10. [单片机][at32][填坑日记] [USB卡包] usb快速发包导致卡包