C语言一些很杂的知识点

1.printf的运行顺序是从右向左

但是printf是如果做到从右向左的,我们在函数的传参的时候,左边参数如果是变量,也可以用于右边的参数,说明函数的参数应该是先运行左边的语句,而printf也是值传递,不涉及地址,所以不能在函数内部做操作????????????

大概搞清楚了,函数的参数也是一个压栈和出栈的过程,所有函数的顺序都是从右向左的,从右向左压栈,出栈的时候就是左边先出,所以函数形参想要使用形参定义的参数,需要写在那个参数右边;

2.在函数中使用const修饰的变量其实还是在栈区开辟的空间,虽然不能直接修改,但是可以通过地址修改。

3.局部变量未初始化的时候都是随机值,但是全局变量不初始化也是0;(原因还在研究)

4.初始化的全局变量在data段,未初始化的在bss段;

5.关于取值范围
以char类型举例
char类型的范围是-128 -127

原本是-127到127,由于-0的原因;

将1000 0000定义为-128的补码

注意!!!!:-128没有反码和原码;

由此可知如果对-128减一,则对1000 0000减一,得到0111 1111,值为127,以此类推

结论:如果超出了变量的取值范围,则会形成循环;

存储数据时,看数据的正负;
取出数据时,看数据的类型;

反码等于原码符号位不变,其他位取反,补码为原码+1

6.关于标准IO函数与文件IO中的光标移动问题


6.1在fopen或者open打开文件的时候,如果使用r,r+,O_RDONLY打开的话,在使用fread或read函数的时候,光标会随之移动,但是使用fwrite或write函数的时候光标不会移动;

6.2在fopen或者open打开文件的时候,如果使用w,w+,O_WRONLY打开的话,在使用fread或read函数的时候,光标不会随之移动,但是使用fwrite或write函数的时候光标会移动;

6.3在fopen或者open打开文件的时候,如果使用a+,O_RDWR|O_APPEND打开的话,在使用fread或read函数的时候,光标也会随之移动,但是使用fwrite或write函数的时候会默认在结尾添加;并且操作光标只会对读产生影响,而不影响写的位置,写都是在末尾进行;

6.4在fopen或者open打开文件的时候,如果使用a,O_WRONLY|O_APPEND打开的话,此时不能进行读操作,但是此时操作光标,对于写的位置没有影响,每次都会在末尾进行写入;

7.如果在创建进程之前,使用signal函数,则子进程会继承signal函数改变的效果;



6.关于typedef的一些使用
https://www.cnblogs.com/guanghui-hua/p/17426155.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值