《C和指针》学习笔记(一)第一章~第六章

1、把函数的声明放在头文件,需要的时候include头文件,的好处:
    声明只需要编写一次,使以后的维护修改更容易,消除了多份拷贝写法不同的情况
2、gets读入字符串,可能会超出数组的边界,fgets会把字符串长度作为参数传入
3、俩个环境:翻译环境、执行环境
4、交叉编译器:类似操作系统         独立环境:不具有操作系统,嵌入式
5、代码-》预处理-》解析-》优化-》目标代码-》链接-》可执行程序
6、执行:程序载入内存-》开始执行-》运行堆栈、静态内存初始化-》调用main-》程序返回
7、三字母词
8、字符转义:\?    \"    \'    \\
9、注释可以出现在任何空格出现的地方
10多字节字符常量前加L,宽字符常量
11、负号被解释为单目操作符而不是数值的一部分
12、枚举类型指它的值为符号常量而不是字面值的类型
13、如果要修改字符串要把它存在数组中
14、写指针*时靠近名字 int *a,*b,*c;
15、使用typedef来创建新的类型而不是#define
16、const变量只能作用于允许使用变量的地方
17、switch语句的case只是确定语言列表的进入点而不是划分语句,所以必须加break
18、while((ch=getchar())!=EOF)错误的EOF为整型,getchar返回值为整型,整->char->整
19、强制类型转换有很高的优先级,放在表达式前面只会改变第一个项目的类型
20、++a得到的结果是a值的拷贝 不能 ++a=10
21、&&与||都是先求表达式左边依次来减小计算量
22、一连串的逗号表达式做判断只判断最后的那一个表达式
23、a*b+c*d+e*f
24、有符号的右位移操作是不可移植的
25、大写转小写tolower()  小写转大写tooper()
26、不能简单的通过检查一个值的位来判断它的类型
27、在对指针间接访问之前要确保它已被初始化
28、定义指针变量时定义为NULL,进行间接操作前判断是否为NULL
29、指针变量可以作为左值(因为它是变量),我们可以将解引用操作后的结果作为左值使用,它指定了一个特定的内存位置
30、间接访问操作智能作用于指针类型表达式,不能直接作用于地址
31、一个字符型变量作为左值的时候表示的是地址,类似于字符数组
32、内存位置不能作为左值
33、指针加法运算的结果是一个右值,间接访问的结果是左值
34、*++p先自增后间接访问,*p++先间接访问后自增
35、*p++值得注意,三个步骤:1、++操作符产生p的一份拷贝
                    2、然后++操作符增加p的值
                    3、在p的拷贝上间接访问
36、#include <assert.h>
    void assert( int expression );
37、如果它的条件返回错误则终止程序
38、指针只有俩种算数运算     指针+-整数、指针-指针
39、俩指针相减的结果为ptrdiff_t,一种有符号整数类型,表示俩指针在内存中的距离,可能为负数
40、size_t用于指明数组长度,它必须是一个正数
41、当使用指针运算时,要小心,确信运算的结果将指向有意义的东西
42、指针运算只有作用于数组中其结果才是可预测的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值