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

翁凯C语言

2021-12-05 00:51 作者:肥硕硕  | 我要投稿




c的四种类型



printf("sizeof(int)=%ld",sizeof(int));


是静态运算符

a+1.0强制类型转换把a变成float,但是没有加上1









6.1.3整数的内部表达:整数是如... P57 - 04:15




表达负数:

1&2不好的理由

补码:-1=0-1,a=2n方-a




unsigned





6.1.5整数的格式化:如何格式化输入... P59 - 00:46




小于int输出都用%d


a++是先进行赋值运算,就是b=a,然后a再加1;

b=3;    a=5;

b=a++;    b=5;

b=++a;    b=6




6.1.6选择整数类型:没什么特殊需要... P60 - 01:19



总结:一般都用int




6.1.7浮点类型:double和float,... P61 - 00:27


%f

用%e(E)可以输出科学计数法






6.1.8浮点的范围与精度:浮点数... P62 - 00:26


整数无法表达无穷大,所以12/0没有意义

a=1.345f表示a的类型是浮点数(没搞懂)




不能用==来做相等判断

算数的时候不能用浮点数,误差会累积,可以整数小数分别进行运算。


浮点数是个编码的形式,用专门的部件进行运算





6.1.9字符类型:char是整数也是字符 P63 - 01:41







输入了i之后要按回车or空格才能开始输入下一个,没有空格的话你按的那个空格就会被当作c的输入


没有空格的话,%d就只读到整数结束为止,后面那个(空格)就给后面的东西读。


c=i,因为char又是整数又是表格吗


输出字符'',






6.1.10逃逸字符:反斜杠开头的字... P64 - 00:20


\"

printf("请输入数字,如输入\"5\"");

(其实用中文的引号就没问题了)




6.1.10逃逸字符:反斜杠开头的字... P64 - 04:18


printf("123\b\n456\n");

为啥在黑框(shell)里不同。

我们写的程序交给shell(别人写的程序)来运行,shell读入我们键盘的输入,再把电脑的输出经过加工给我们看到。

printf("123\bA\n456\n");

BLACKSPACE要回到上一个位置但不一定删除,如果你不继续输出东西,就没什么区别了。



\t

TABLE键,每一行固定的位置而不是固定的字符数。



6.1.11类型转换:如何在不同类型... P65 - 00:36




所以输出只有%d和%l




(short)32768==-32767





6.2.1逻辑类型:表示关系运算和... P66 - 00:36





实际上bool还是个整数类型




6.2.2逻辑运算:对逻辑量进行与... P67 - 02:03


与或非

表达4<x<6:4<x&&x<6

判断字符c是否是大写字母:

c>='A'&&c<='Z'






6.2.3条件运算与逗号运算 P68 - 00:09







meidong




7.1.1初见函数 P69 - 05:04


例子:




7.1.2函数的定义和调用 P70 - 02:22








7.1.2函数的定义和调用 P70 - 09:04





7.1.3从函数中返回 P71 - 01:15


不好,因为不是单一出口;




7.2.1函数原型:用来告诉编译器... P72 - 03:22


把函数a的头复制在最前面

(在函数b中使用,声明放在b的外面

;让编译器知道函数的变量和返回类型

可以不写参数名称:

void sum(int ,int )




7.2.2参数传递:调用函数的时候... P73 - 07:06




如果给的参数类型和规定的不一定

在c语言中没关系,

他会自动进行转换,2.4-->2


c语言在调用函数时,永远只能传值给函数

每个函数都有自己的变量空间,参数也位于这个独立的空间中,和其他函数没有关系。




7.2.3本地变量:定义在函数内部... P74 - 00:18




i的生存期取决于a,b的大小关系






7.2.4函数庶事:一些有关函数的细节问... P75 - 01:04


声明中swap()

表示不确定有没有参数,编译器会猜测需要两个int的参数

所以不要写这种







8.1-1 初试数组 P76 - 05:47



(这个我用两个for写不出来www要再试一下)

先做一轮scanf再进入循环也


for,while&if语句的差异



8.1-2 数组的使用:如何定义和使... P77 - 08:19



int a[10];

a[0]~a[9]


(关于本地变量 )



可以用switch case;



(10用 const int number=10代替)

初始化的for循环可简化为int count[number]={0};




8.2-1 数组运算 P79 - 09:25



1.a[]={2,4,3,5};

2.a[12]={2};

(第一个是2,其他都是0)

3.a[3]={[1]=2};

(第2个是2,其余是0)



for(i=0;sizeof(a)/sizeof(a[0]);i++)

这样可以变动数组大小而不用修改其他部分











8.2-2 数组例子:素数 P80 - 01:24




(||和&&的优先级)



如何知晓函数的详情



套路:prime[count++]=i;//一行做了两件事

在调试的时候加{},我们可以在里面定义自己的本地变量







调试代码





8.2-3 二维数组 P81 - 02:06


a[i][j]










9.1-1 取地址运算:&运算符取得... P82 - 00:18



printf(“0x%x”,&i)

printf(“%p”,&i)

%p把变量作为地址类型输出



地址的大小取决于你是64还是32架构

强制类型转换

32位 地址是4个字节 64位 地址是八个字节


(所以地址和整数不一定相同)


&(i+p) x


c语言地址分配由上至下,先定义的变量地址更大





9.1-2 指针:指针变量就是记录地... P83 - 01:11



*表示这里p是一个指针,它指向的是一个int类型的变量

是把*加给了p,q还是个int



读写变量





9.1-3 指针的使用:指针有什么用呢? P84 - 00:20







试图往0的地方写12




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


a[]是指针

int *a









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





不能通过p修改i,




1.是保证在函数内部不会动指针所指的值






9.2-1 指针运算 P87 - 00:30


sizeof(char)=1;sizeof(int)=4;

p+1=加上个sizeof(类型)


数组和指针可以混用。。。??


p+1指向的就是ac[1],没得意义了。



p1-p得出这两个之间能放几个int类型的东西






虚拟地址



q=p x

(初学不具备太多意义)




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

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