欢迎光临散文网 会员登陆 & 注册

翁恺C语言

2022-10-03 12:56 作者:天青花欲燃  | 我要投稿

辗转相除法,

计算机—程序—算法。

枚举法,二分法。

编辑器---.>编译器--.>运行。

开发效率决定了C语言是一种工业语言。

IDE=集成开发环境。

Dev C++;

Dev c++ 5.6.3.Hello World!

cuocuow错误提示在前后,不确定。


变量定义的一般形式——<类型名称><变量名称> ;


fufuzhi赋值,初始化。



scanf-0-其中末尾format格式,&指针。


const常量的名称一般用全大写来强调是一个常量。

%d %d之间的空格有讲究。不能是其他符号。

\" \"表示引号

double ==%lf

float == %f

int ==%d [-2^31,2^31-1]


zhuzhuyi注意=也是运算符

计算时间差。

平均值。

嵌入式赋值不被推荐==因为不易阅读。

计算复利:变量,算法,输入输出。

交换变量。

复合赋值=--两个之间不能有空格。

递增递减运算符---他的算子必须是变量,否则没有意义无效。

前缀与后缀有细微的区别。








3.0.2第二周习题解析 P22 - 13:10


%x--以十六进制格式输出。

0与o的故事。

if (){}判断语句。


if (){

}

else {}

C语言中-关系运算符的结果是1或者0;

JAVA中则是boolean。


优先级:算术运算>关系运算>赋值。

判断是否相等的==与!=的优先级比其他的关系运算低,连续的关系运算是从左到右的。

//C99注释comment不执行,只是为了方便读懂;

/* */---C99 and ANSI.

i嵌套的if-else一定要加大括号;容易读懂。

else总是和最近的那个if匹配。

注意:else的缩进并不影响if 的匹配。

在if或else后面总是用{}

即使是只有一条语句的时候。

级联:


单一出口。

if只要求()里的值是零或者非零。

在if和else之后必须加上大括号形成语句块;

大括号内的语句缩进一个tab的位置。

多路分支利用switch-case。

switch (type){

case 1: break;

case 2:

break;

default:

}

控制表达式只能是整数型的结果;

常量可以是常数,也可以是常数计算的表达式。


注意case并没有被分割,只有遇到breake才能不执行case。将case视为路牌。


数数字。计算机从右往左。

while

do-while循环。



循环体内要有改变条件的机会。

语法上对,不代表逻辑对。也就是注意死循环。

边界数据。


print发(“in loop/here”)



cnt -1

0 0

-1 -1

循环体中代码行的次序对结果有细微的差别。


#include <stdlib.h>

#include <time.h>

srand (time(0));

int a = rand ();产生真的随机数。

rand()产生随机数。

1234%10

x%n 的结果是【0,n-1】的一个整数。

123

3

0+3=3 12

2

32ret

1 +320=321


阶乘!





for===while



break;打破跳出循环

continue;跳过循环这一轮剩下的语句进入下一轮。

4个人唱歌比喻。

100以内的素数。=嵌套的循环。

前50个素数呢?

\t制表位。

凑硬币。:100元 由10元,20元,50元凑的结果有多少种。 ____bianlbi遍历。

a=100/50,

b=(100%50)/20,

c=((100%50)%20)/10,

100 Yuan == a*50+b*20+c*10.

C语言:goto 语句。label也就是标号;

goto label:

JAVA语言:break label:。

goto适合嵌套循环跳到最外层。

前n项求和。








pow(10,n)=10的n次方。


5.3.2整数分解 P46 - 15:40






符合给定条件的整数集。

index



6.0.2编程练习解析4-1:水仙花数 P49 - 00:07



遍历



6.0.2编程练习解析4-1:水仙花数 P49 - 08:51




6.0.3编程练习解析4-2:九九乘法表 P50 - 01:42







6.0.5编程练习解析4-4:猜数游戏 P52 - 03:38









sizeof()是一个静态运算符,他的结果在编译时刻就决定了,不要在sizeof的括号里做运算,这些运算不会执行的。


char 1,short 2Byte,int 4,long 8,long long 8.

-m32 cahr 1 ,short 2, int 4, long 4, long long 8.










unsign char 不以补码的形式表示,纯二进制数字表示。副作用是无法表示负数。,


计算机内部数据不变只是取决于比怎样读取怎么读。printf强制读取int


%o八进制输出。%x十六进制输出。

为了准确表达硬件。+早期规范。


%e输出形式是科学计数法。%E大写字母。


%.16f表示小数点后十六位,即输出精度。

浮点数有误差。非常正常。


6.1.7浮点类型:double和float,... P61 - 09:21


-0.0045浮点数四舍五入则是-0.004因为浮点数有误差,我们其实是对-0.0044999做四舍五入。

printf输出inf表示超过范围的浮点数:+-无穷大

printf输出nan表示不存在的浮点数。

wuwu无穷大可以用浮点表示。浮点

浮点运算有精度。



6.1.8浮点的范围与精度:浮点数... P62 - 05:37







ASCII。

字符的输入输出:如何输入'1'这个字符给char c?

scanf(“%c”,&c);-->1

scanf(“%d”,&c);-->49



6.1.9字符类型:char是整数也是字符 P63 - 06:39


字符计算


常见ASCII码的大小规则:数字< 大写字母 < 小写字母。

1.数字比字母要小。如 “7”<“F”;

2.数字0比数字9要小,并按0到9顺序递增。如 “3”<“8” ;

3.字母A比字母Z要小,并按A到Z顺序递增。如“A”<“Z” ;

4.同个字母的大写字母比小写字母要小32。如“A”<“a” 。

几个常见字母的ASCII码大小: “A”为65;“a”为97;“0”为 48   。



shell 与hello word!

\b回退一格,back space若有再次输入将覆盖,否则不覆盖。

自动类型转换




























7.1.2函数的定义和调用 P70 - 05:30



函数名与参数值之间不能有空格。


dan单一出口原则。






函数的原型声明(告诉编译器不要乱猜);函数的定义;























函数声明一定 要在括号里明确参数是什么或者void。



可以嵌套声明。



main()其实也是一个函数,在它之前还有一系列准备工作(yu预编译),所以return 0是有效的;

p处理文件,bat文件。


数组。数组的索引从零开始。


数组的使用:如何定义和使用数组。



左值、右值在指针中讲在c语言中的含义。

c语言开始数组的小标从零开始。

c语言的函数到底是怎么输入输出的?本质是什么?




magic number避免。


搜索:在一组给定的数据中,如何找出某个数据是否存在?


数组的集成初始化、。











一个数组给另一个数组只能采用遍历。









副作用C++

在c语言中平白无故的加入一对大括号往往是用来调试的。



C99中的i内部取代外部。


8.2-2 数组例子:素数 P80 - 11:59







8.2-2 数组例子:素数 P80 - 18:13



二维数组。


a[i,j]--括号里边是逗号运算符,表示j。







运算符&



地址符占16字节,p定义了整形所以需要强制类型转换。

64位架构

32位架构



上边A++,++A,A+B均不能取地址。

stack堆栈,分配变量自定向下存储数据变量。


对于数组的地址



指针就是保存地址的变量point


*p是一个int,p是一个指针。

int *p,q 与int* p,q的区别。










32位架构恰好不变,编译不会报错,但运行一定会出错。






状态用return 返回,实际的值用指针方式返回。









一个演员演了两个双胞胎。


9.1-4 指针与数组:为什么数组传进函... P85 - 05:24










数组其实可视为一个常量,故不可以被用来赋值运算。




9.1-5 指针与const:指针本身和所指的... P86 - 00:09






上边图片是说不能通过*p修改。


如果const在*的后面表示指针不能修改。

在*前边表示*所指的东西不能修改。





指针运算。



指针加一是加一个sizeof()。








两个指针相减是地址差除以sizeof的结果。







动态内存分布。


<stdlib.h>引用malloc返回void *。动态内存分配。free()





1024==1k

1024*1024==1m

1024*1024*100=100m.








malloc+free.架构+经验。

字符串




‘\0’一个字节。0是int4个字节。'0'ASCII=0x30==48十进制。

注意结尾的0需要占据一个字节。




字符串变量


















空格





字符串数组





end of file.












spaceASCII32.




chongchongdi不能重叠。






concatenate链接。



不会越界。

返回的是指针,strrchr从右边开始。




保护字符串。


strcasestr忽略大小写来寻找字符串。


枚举











结构

















































小端(低位优先)=存储从右向左来存。IBM从左向右,大端小端

x86cpu小段-低位在前。

全局变量









强龙不压地头蛇。





static静态本地变量保持变量。


全局变量存放在代码区,本地变量存放在栈区。

全局变量贴士



二房东。

全局变量是不可存入的。对于多线程是不安全的。


宏定义


macro宏定义。








带参数的宏







macro宏不要加分号


inline机制取代带参数的宏,属于一种函数。

大程序






自己的头文件用“”系统给的标准库的用<>.



extern gAll全局变量声明。



函数的定义是定义,函数的原型是声明。





*格式化输入输出*







9.2表示共有9位且小数点后有2位。





%n读取、写入的个数



gps1083协议。


文件输入输出




<输入

>输出




二进制文件



vim














shu数据库、第三方库

**按位运算**











取反与补码是不一样的。



2次异或相当于什么都没做。

**移位运算**





**位运算例子8**


SFR = special funtion register //特殊功能寄存器



**可变数组==resizable array**

结构不带指针更好,因为可以作为变量。









free安定&create


封装。

获得指针就可以对其进行赋值或者修改。




可变数组的增长











memcpy

可变数组的缺陷



没有连续的内存

**链表**





数据+节点。上图代码行不能使用Node因为它在7行才定义出现。







不要使用全局变量因为不可检测。


第四种方法


14.2-3 链表的函数 P125 - 05:06











尾指针——————没有展开讲述。

遍历list链表

链表的搜索









链表的删除

lianbiao此时学的都是单向链表




边界条件

链表的清除


哨兵节点,双向链表


图形界面软件







DCshe设备上下文




项目属性





acllib的基本绘图函数





坐标系unix也一样。


unix习惯于这样











翁恺C语言的评论 (共 条)

分享到微博请遵守国家法律