程序执行过程

.c源文件——预编译——编译——汇编——链接——.exe的可执行文件

数据类型

数据类型 定义 符号 32位下所占字节数 备注
char 字符数据类型 %c 1
short 短整型 %d 2
int 整形 %d 4 在16位操作系统中为2字节,32、64都为4字节
long 长整型 %ld 4 在linux64位操作系统中为8字节
long long 更长整型 %lld 4
float 单精度浮点型 %f 4
double 双精度浮点型 %lf 8

存储单位

Bit Byte Kb Mb Gb Tb Pb

1Pb = 1024Tb
1Tb = 1024Gb
1Gb = 1024Mb
1Mb = 1024Kb
1Kb = 1024Byte
1Byte = 8bit

变量

变量分为局部变量和全局变量,用static修饰的变量叫静态全局变量,和静态局部变量。

生命周期 作用域
普通局部变量 进入函数创建,出函数后消失 函数体内
静态局部变量 进入函数创建,程序结束后消失 函数体内
普通全局变量 程序开始到结束 整个工程
静态全局变量 程序开始到结束 所在.c文件内

(注:1、全局变量用到extern关键字,可使作用域扩展至整个工程
2、局部变量与全局变量同名时,局部变量优先)

常量

  • 字面常量
  • const 修饰的常变量
  • #define 定义的标识符常量
  • 枚举常量
#include <stdio.h>
//举例
enum Sex
{MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{3.14;//字面常量
1000;//字面常量
const float pai = 3.14f; //const 修饰的常量
pai = 5.14;//ok?
#define MAX 100 //#define的标识符常量
return 0;
}

字符串

字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串的内容。
例如:

#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{char arr1[] = "abc";
char arr2[] = {'a', 'b', 'c'};
char arr3[] = {'a', 'b', 'c', '\0'};
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%s\n", arr3);
return 0;
}

打印结果为

因为数组中装的是

arr1 a b c \0
arr2 a b c …等别的字符
arr3 a b c \0 \0

转义字符

转义字符 释义
\ ? 在书写连续多个问号时使用,防止他们被解析成三字母词
\ ’ 用于表示字符常量’
\“ 用于表示一个字符串内部的双引号
\ \ 用于表示一个反斜杠,防止它被解释为一个转义序列符
\ a 警告字符,蜂鸣
\ b 退格符
\ f 进纸符
\ n 换行
\ r 回车
\ t 水平制表符
\ v 垂直制表符
\ ddd ddd表示1~3个八进制的数字。 如: \130 X
\xdd dd表示2个十六进制数字。 如: \x30 0

注释

  • C语言风格的注释 /* xxxxxx */
    缺陷:不能嵌套注释
  • C++风格的注释 //xxxxxxxx
    可以注释一行也可以注释多行
  • 注释快捷键:ctrl+k+c
  • 取消注释快捷键:ctrl+k+u

关键字

auto break case char const continue default do double else enum
extern float for goto if int long register return short signed
sizeof static struct switch typedef union unsigned void volatile while

typedef 顾名思义是类型定义,这里应该理解为类型重命名
例子:

//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名
typedef unsigned int uint_32;
int main()
{//观察num1和num2,这两个变量的类型是一样的unsigned int num1 = 0;uint_32 num2 = 0;return 0;
}

#define

  1. 定义标识符常量
    #define MAX 1000
  2. 定义宏
    #define ADD(x, y) ((x)+(y))
    (注:每一个字母都加上括号(),以防运算中出麻烦)
    例如:
//define定义标识符常量
#define MAX 1000
//define定义宏
#define ADD(x, y) ((x)+(y))
#include <stdio.h>
int main()
{int sum = ADD(2, 3);printf("sum = %d\n", sum);sum = 10*ADD(2, 3);printf("sum = %d\n", sum);return 0;
}

sizeof是一个关键字:用来返回字节数,包含\0
而strlen(参数)是string.h包中的一个库函数:求当前参数(字符串)的长度,但不包含\0

C语言--菜鸟基本概念梳理相关推荐

  1. C功底挑战Java菜鸟入门概念干货(一)

    一.认识Java 1.Java 程序比较特殊,它必须先经过编译,然后再利用解释的方式来运行.  2.Byte-codes 最大的好处是--可越平台运行,可让"一次编写,处处运行"成 ...

  2. 嵌入式技术(单片机原理)基本概念梳理(保研/考研面试)

    嵌入式技术基础(单片机原理),常见概念及知识点整理(保研面试用). 目录 第1章 概论 第2章 MCS-51系列单片机的资源配置 第3章 MCS-51系列单片机的指令系统及汇编语言程序设计 第4章 单 ...

  3. 【编译原理】期末 龙书概念梳理+做题方法(混子保过指南+学霸提分秘籍)

    编译原理期末总结 龙书概念梳理+做题方法 目录 编译原理期末总结 龙书概念梳理+做题方法 编译概述 1 编译过程 2 编译&解释 3 GCC的处理过程 词法分析 1 词法分析的任务 2 词法分 ...

  4. [DOM Event Learning] Section 2 概念梳理 什么是事件 DOM Event

    [DOM Event Learning] Section 2 概念梳理 什么是事件 DOM Event 事件 事件(Event)是用来通知代码,一些有趣的事情发生了. 每一个Event都会被一个Eve ...

  5. 简述HTML语言概念,HTML语言的基本概念和基本格式.doc

    HTML语言的基本概念和基本格式 HTML语言的基本概念和基本格式当使用Netscape Navigator 与 Interne Explorer 这些浏览器在Interent上尽情遨游的时候,肯定会 ...

  6. c语言指针的概念和作用,指针:C语言的重要概念和特色.pdf

    指针:C语言的重要概念和特色.pdf 一 指 针 :C语 言 的 重 要 概 念 和 特 色 令 小怀 (定西工贸中等专业学校 ,甘肃 陇西 748100) 摘 要 :指针是C语 言的精髓部分 .也是 ...

  7. Verilog语言菜鸟教程知识关键点记录

    Verilog语言菜鸟教程知识关键点记录 1.两类数据类型:线网数据类型与寄存器数据类型,线网表示物理元件之间的连线,寄存器表示抽象的数据存储元件. 2.Verilog 作为硬件描述语言,主要用来生成 ...

  8. HDMI EDID概念梳理

    EDID概念梳理: EDID数据格式: EDID包含两个部分,基本的EDID只有128个字节,还有128字节的扩展EDID,扩展部分不是必须有的.那通常电视都有扩展EDID.那EDID的详细定义在规范 ...

  9. 【C语言|菜鸟教程】100道进阶经典例题详细解答(实例二)

    文章目录 前言 一.题目描述 二.题目分析 三.解题 (1)解题方法一----if-else if语句 1. 思路 2. 程序运行 3. 程序运行结果 (2)解题方法二----if-else if语句 ...

最新文章

  1. (笔试题)删除K位数字
  2. html 调入网页,HTML 文件怎么从外部调入 HTML 模板(如头部,页尾这些公共的部分)?...
  3. Exchange 2003 OWA登陆非常慢!
  4. spring 4.3.x_如何在Spring 3.x中使用事件
  5. 2.5d generator 2.0_ps插件【2.5D插件】
  6. 指针(*)、取地址()、解引用(*)与引用()
  7. oracle约束 关闭,Oracle约束管理脚本
  8. pcl从一个点云里面导出下标
  9. 基于JAVA+SpringBoot+Mybatis+MYSQL的校园招聘管理系统
  10. Android TV 开发 (1)
  11. kettle连接GBASE数据库
  12. 单片机4*4矩阵键盘的原理
  13. ks检验正态分布结果_SPSS实现Shapiro-Wilk正态分布检验
  14. 洛谷P3376-网络流
  15. ST、SC、FC、LC光纤接头区别?
  16. 读论文,第十三天:DualRing: Enabling Subtle and Expressive Hand Interaction with Dual IMU Rings
  17. 无限能,传统中药饮片的蜕变
  18. asp.net 实现word在线阅读
  19. SAP HANA是什么?
  20. 【研一小白的白话理解】pytorch-CycleGAN-and-pix2pix

热门文章

  1. 中介公司的故事(一)-Java静态代理
  2. VxWorks启动之romStart剖析
  3. Android开发杂草园
  4. MultiDex工作原理
  5. ffmpeg裁剪视频长度
  6. python使用turtle库绘制一个100长度的十字架_测验2: Python基本图形绘制 (第2周)
  7. 六类挂单一键取消脚本
  8. wallpaper 音频响应实现
  9. 售前工程师工作内幕揭秘:基础认知
  10. Lodop打印控件打印