作业总结【1】

建立在所有代码段之外的变量是全局变量,然后变量不初始化则默认为0.

sizeof计算出的值的类型是无符号整型 unsigned int ,而当有符号数和无符号数之间进行比较的时候,会先将有符号数类型转换为无符号数,然后再进行比较(有符号转换为无符号的过程就是认为其不再具有符号位,即首位就是首位,不再表示正负)

当你想用scanf同时输入两个数据的时候,一定要注意这输入输出格式控制符之间用什么隔开,因为这里用什么隔开也决定了我们在用键盘输入这两个数据的时候得用什么隔开

整数除以整数 --》只能得到整数,且是向下取整

解引用是通过地址直接访问和操作存在内存的数据的一种手段

指针的大小为4(32位)/8(64位)个字节的大小


补充一个缺漏的知识点!!!

指针减指针(只能是两个相同类型的指针相减,否则的话减出来的结果是未定义的)

指针减指针确实是指针中的地址相减,但减完后计算机不会直接输出这个结果,由于计算机知道是两个相同类型的指针相减,所以它会将减出来的结果除以指针指向的数组的类型的大小后再输出结果 --- p1 - p2

而输出的结果代表这两个相减的指针之间差了多少个与指针指向数据相同类型的元素

如果差值为符,则p1地址在p2前,反之在其后

指针减指针


数组的建立一定要给定元素的个数,即 [ 这里面的值 ],当然这里面没有值也可以建立数组,但是前提是:如果你省略了下标引用操作符中的元素个数,那么你就必须初始化这个数组,因为[ 这里面没有值的时候 ] 我们通过初始化来给予它元素个数 --- 初始化多少个元素,它的元素个数就是多少个

总之建立数组一定要给定元素个数,无论是直接在 [ 这里面的 ] ,还是通过初始化给定的


点操作符 . 的优先级比解引用操作符 * 的优先级高

left , right 两边逼近交换,left >= right时交换结束

断言判断是不是空指针


栈溢出是一种运行时错误

release版本是发布版本,是不以被调试的

int const *p 和 cosnt int* p 是等价的,二者都是在修饰 *p


处理数组问题的时候可以多想想两相逼近的处理方法,两相逼近的限制条件往往是左小于右


有符号数的原码自带符号位。

一个字节有八个bit位!!!

一个整数有四个字节,32个bit位,如果放到char中,自然会发生截断现象

如 char a = 1000000000 --- 此时存到char中的只有0,截断现象 

除char以外,其它的类型在c语言中若没有加 unsigned 的话就会导被认为是有符号类型,则其输入输出格式控制符也会从有符号的角度来看待要被输入输出的数据

同时在输入输出的时候,若若用%d作为输入输出的是精度比整型小的char和short的输入输出格式控制符的话,则要被输入输出的char/short数据也会发生整型提升,然后再输入输出。

每个指针类型的步长不一样,能够访问和操作的内存空间也不一样。


大小端字节序指的是内存中字节的排列的顺序而不是二进制位的排列顺序

用二维数组来解决杨辉三角

找规律编程序                      

不要乱加分号;,不然会导致程序以为这是一个语句直接执行完报错了!!!!!

逻辑操作符+操作数也是一个表达式!!!,这个表达式在逻辑判断为真的时候输出1,否则输出0(1为真,但真不一定是1,因为非0都为真,不过假一定是0) 

二维数组在初始化的时候最好用一维数组来初始化,不然的话就不要手动初始化,让系统自动将它们初始化为0

row是行,col是列

将字符串输入到数组中的时候,不需要取地址符号,只需要数组名即可(注意不要溢出)

如 char a[ 10 ]

scanf("%s",a);

strlen计算字符串长度时遇到终止符\0时停止计算,且\0不会被计入字符字数

scanf_s中需要给定一个整型参数来告诉计算机可以向字符数组中录入的字符的个数

冒泡排序排n个数最多要n-1次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值