C语言——学习笔记
函数和变量都需要满足:先声明后使用(重要)
在 函数的声明中,形参的名字可以省略
函数的定义是一种特殊的是声明,比声明更加强大;函数使用前必须进行声明,但不必要声明具体定义
.h——函数的声明
.c——函数的定义,说明使用
自己创建的头文件用“”
标准库里面的头文件使用<>
隐藏关键代码——静态库
extern用来声明来自外部的符号
全局变量的作用域是整个工程
变量创建到销毁是他的一个生命周期
static只改变变量的生命周期(存储方式),不改变作用域
static修饰全局变量时,改变了全局变量的链接属性,使得外部链接属性变成了内部链接属性,这种变量只能在自己存在的.c文件中使用,其他文件不能使用
函数也具有外部链接属性,只要在其他文件中有正确声明,就可以直接使用
包含自己的头文件应该使用双引号
F5是让程序执行到(运行逻辑上的如循环)下一个断点处
调试就是指对单个语句进行研究和分析,开始执行不调试就是最好的例子Ctrl +F5
调试时候,箭头指向的是下一步即将执行的语句(按F10或者F11)
开始调试后才能看到监视窗口
四个二进制位可以表示一个16进制位
三个二进制位代表一个八进制位
每一个字节都有一个地址
栈区中内存的使用习惯:(不同的实现环境里存在区别,以下为X86环境)
优先使用高地址的空间再使用低地址的空间,数组随着下标的增长,使用的内存空间地址由低到高变化
不同的环境,bug或者release不同版本使用,都会影响最后程序执行的结果
release版本是存在优化的
数组在函数传参时不需要再继续定义类型
每次函数调用的时候在栈区里都会有属于他们的一个专属空间(运行式堆栈),使用结束后会销毁
循环是一种迭代,迭代不仅仅是一种循环
斐波那契数列——指数爆炸增长
青蛙跳台阶问题
反码,除符号位外其他位都取反,
补吗,反码+1
非负整数原码、反码、补码相同
char 是否为signed char取决于编译器,在VS上是signed
char类型的取值范围:-128~127