C语言笔记1

252 阅读3分钟

变量常量 输入输出

函数构成

main函数是程序的入口 一个程序有且仅能有一个main函数

示例

1.变量

先声明后使用

  • 声明后立即初始化 只能一次 int a =100
  • 先声明再变量赋值 可多次 int a; a=100 初始化之后还能赋值

2.常量

  • 字面常量 无需声明不可赋值 如1 hello
  • 符号常量 格式:#defind 符号常量名 值

3.标识符

自己命名 表示变量

  • 只能由大小写英文字母 数字 下划线组成
  • 不能以数字开头
  • 不能是已有关键词

4.关键词

  • 特殊意义 直接使用 不可作标识符

常用关键词

数据类型

1.整型类型

表示整数

image.png

有符号占位符为%d %ld %lld

image.png

无符号占位符为%u %lu %llu

那么这个取值范围是怎么来的呢
首先 1个字节有8个比特 能表示2^8个数字
对于无符号整型 就是0到2^8-1
对于有符号整型 00000000表示的是正0 10000000表示的是负0 众所周知0没有正负 且没有其他数字的补码会是10000000 所以我们人为规定10000000是-2^7 即表示数字的范围是-2^7到2^7-1

补码

  • 正数的补码是它本身
  • 负数的补码如下
  1. 先写出对于正数的二进制
  2. 从二进制的右边开始 遇到第一个1之前 全部填0
  3. 把遇到的第一个1填下来
  4. 1之后的全部取反

image.png

image.png

image.png

2.浮点类型

表示小数或者指数 占位符为%f或%lf

  • float 4字节 6位有效数字 或10^38
  • double 8字节 精度更高 10^308
  • 1.23e6 表示1.23*10^6 e或者E表示以10为底的指数 e前必须有数字 e后必须为整数
  • longdouble占用几个字节取决于编译器
  • 一个小数不声明是float还是double 默认double

3.字符类型

占位符为%c 就是整型类型的char 1字节

  • 常量:printf(“字符串”) printf(“%c”,’字符’)
  • 变量
  • 转义字符:\数值(八进制) 用ASCII表查找
  • 前31位不可见字符用/数值或字母表示 如12或n表示换行数值0表示字符串结束

常见转义字符

转义序列含义八进制十进制
\a报警77
\b退格108
\f换页1412
\n换行1210
\r回车1513
\t水平制表119
\v垂直制表1311

ASCII表 image.png

变量的储存类型

内存的储存空间分为三部分
image.png

auto

用关键词auto的局部变量都是动态储存变量 执行到变量作用域结束时收回空间
c默认局部变量为auto 若未明确复制 变量的初值不定

static

用关键词auto的局部变量都是静态储存变量 空间保留至程序结束储存变量
静态类型变量均有确定的初值 当变量未指定初始值时 编译器设其初始值为0