C语言简介:
    BCPL->newB->C语言->UNIX->Minix->Linux->gcc
    C语言诞生于1970-1973年,在肯.汤姆逊和丹尼斯.里奇的主导编写下完成,归属于美国的贝尔实验室。
    C语言专门为了编写操作系统而诞生的语音,所以天生适合硬件编程,以运行速度快著称,也非常适合实现数据结构与算法。
    由于出现的时间过早,C语音是存在非常多的缺陷,也没想到普通人也能使用C语音编程,因此就存在陷阱,但是前辈们总结了一些避免的经验《C语音的陷阱
    与缺陷》C语音三剑客,《C程序设计语言》,C语言的语法很自由,也意味着危险,自由源于自律

C89语法标准,gcc默认的语法标准
    C99语法标准,对C89标准的扩展和增强 gcc -std=gnu99/-std=c99(不建议)
    C11语法标准,全新的升级

一、第一个C程序
gcc xxx.c
./a.out
#include <stdio.h>
程序员所编写的代码并不是标准的C代码,需要一段程序把它翻译成标准的C代码,负责翻译的程序叫做预处理器,
翻译的过程叫做预处理。被翻译的代码叫做预处理指令,以#号开头的代码都是预处理指令
    #include 的功能是把一个头文件导入到当前文件中
    #include <> 从系统指定的路径下加载头文件
    #include "" 先从当前路径下加载头文件,如果找不到,再从系统指定的路径下加载头文件
    操作系统是通过设置环境变量来指定加载头文件的路径
stdio.h
    头文件:以.h结尾,里面存储的是一些辅助性的代码,绝大部分是函数的声明
    源文件:以.c结尾,里面存储的是功能性的代码
    C语言标准委员会为C语言以函数的形式提供了一些基础功能,这些函数就被封装到了libc.so库文件中
    用很多头文件负责对库中的函数进行分类说明,stdio.h就是其中的一个,常用的还有stdlib.h string.h 
    stdio.h 负责对输入输出功能的函数进行说明

int main()
{
    printf("Hello word!\n");
    return 0;
}

main函数:
    C语言以函数为单位来管理代码,是管理代码的最小单位,一个函数就是一段具有某项功能的代码段
    main函数是程序的执行入口,有且只有一个
    int 是一种数据类型,它表示main函数的执行结果是一个整数
    return 功能有两个:1、结束函数的执行 2、返回一个数据给函数的调用者
    main函数是由操作系统调用,它的返回值给操作系统的,反映了程序是怎么以结束的,通常有三种情况:
                                                                                    整数    出现异常    (别人的错误)
                                                                                    0       一切正常
                                                                                    负数    出现错误    (自己的错误)
    可以通过 echo $? 命令查看上一个程序的返回值

printf/scanf 是标准库中的函数,负责输入、输出数据,一般用来调试代码 printf("---------------\n");
    转义字符:
        键盘上一些按键是没有符号的,用一些特殊的字符组合来表示,这些特殊字符组合就是转义字符,\n就是其中一个
        \n 换行
        \b 退一个字符 \b \b
        \r 回到行首
        \t 制表符,用于对齐数据
        \a 铃响
        \\ 表示一个\
        %% 表示一个%
    C语言以分号作为一行代码的结束,使用大括号划分代码区域

二、编译器
    负责把人能看得懂的记录了代码的文本文件,翻译成计算机能看得懂的二进制文件,由预处理器、编译器、链接器
    gcc是由GNU组织为了编译Linux内核代码而开发的一款免费、开源的编译器,默认采用c89标准,-std=gnu99可以设置语法标准
        常用的参数:
            -E 显示预处理的结果
            -S 生成汇编代码
            -c 只编译不链接
            -o 设置编译结果的名字
            -I 指定头文件的加载路径
            -l 指定要使用的库文件 -lm
            -Wall   以更严格的标准来检查代码,尽可能多地显示警告
            -Werror 把警告当错误处理

三、C代码变成可执行程序的过程
    1、预处理   把源文件翻译成预处理文件
        gcc -E code.c   显示预处理的结果
        gcc -E code.c -o code.i 生成以.i结尾的预处理文件
    2、编译     把预处理文件翻译成汇编文件
        gcc -S code.i   生成以.s结尾的汇编文件
    3、汇编     把汇编文件翻译成二进制的目标文件
        gcc -c code.s   生成以.o结尾的目标文件
    4、链接     把若干个目标文件合并成一个可执行文件
        gcc a.o b.o c.o...  默认生成一个a.out的可执行文件

C语言的文件类型:
    .h  头文件
    .h.gch  头文件的编译结果,它会被优先使用
    .c  源文件  
    .i  预处理文件
    .s  汇编文件
    .o  目标文件
    .a  静态库文件
    .so 共享库文件

四、数据类型
    为什么要对数据进行分类:
        1、现实社会中的数据就是自带类别属性
        2、对数据进行分类可以节约存储空间、提高运行效率

存储空间的单位:
        Bit 比特    一个二进制位,只能存储0或者1,计算机存储数据的最小单位
        Byte 字节   八个二进制位,计算机存储数据的基本单位 
        Kb  1024字节
        Mb  1024kb
        Gb  1024Mb
        Tb  1024Gb
        Pb  1024Tb

C语言中数据分为两大类:自建(程序员自己设计的:结构、联合、类)和内建(C语言自带的)
    注意:可以使用sizeof运算符计算类型的字节数

内建:
            整型:
                有符号 signed
                    signed char     1   -128~127
                    signed short    2   -32768~32767
                    signed int      4   正负20亿
                    signed long     4/8
                    signed long long    8   正负9开头19位整数

注意:signed 不加就代表加

无符号 unsigned
                    unsigned char     1     0~255
                    unsigned short    2     0~65535
                    unsigned int      4     0~40亿
                    unsigned long     4/8
                    unsigned long long    8     0~以1开头的20位整数

注意:由于定义无符号数据时比较麻烦,标准库把这些无符号的类型重新定义成了以下类型:
                    使用时需要包含头文件:stdint.h
                    uint8_t     int8_t              
                    uint16_t    int16_t
                    uint32_t    int32_t
                    uint64_t    int64_t
                   
            浮点型:
                float       4       
                double      8
                long double     12/16
                注意:采用科学计算方法,二进制与真实数据时间需要进行换算,因此浮点型数据耗时要比整形数据多得多,编程时尽量选择整型
                小数点后六位有效

time ./a.out    计算程序运行时间

模拟型:
                字符型char
                    字符其实就是符号或图案,内存中存储的是整数,当需要显示成字符时会根据ASCII码表中对应的关系显示出相应的符号或图案
                    '\0' 0        
                    '0' 48
                    'A' 65
                    'a' 97

布尔型bool
                    先有了C语言之后才有了bool类型,所以C语言中是不可能有真正的布尔类型,stdbool.h头文件对布尔类型进行了模拟
                    bool    true    false

五、变量与常量
    什么是变量:程序在运行期间数据可以变化的叫做变量,相当于储存数据的盒子
    定义:
        类型 变量名;
        int num;
        取名规则:
            1、由字母、数字、下划线组成
            2、不能以数字开头
            3、不能与32个C语言的关键字重名
            4、见名知义(功能、类型、范围...)
        
        使用: 
            赋值: num = 100;
            参与运算: num * 10;

注意:变量的默认值是随机的,为了安全起见要进行初始化,一般初始化为0

变量的输入、输出:
            int printf(const char *format, ...);
            功能:输出数据
            format:"双引号包含的格式信息(提示信息+占位符)"
            ...:变量列表
            返回值:输出字符的个数

类型占位符:C语言中通过类型占位符的方式来传递变量的类型
            %hhd %hd %d %ld %lld    有符号
            %hhu %hu %u %lu %llu    无符号
            %f %lf %LF      
            %c %s

int scanf(const char *format, ...);
            功能:输入数据
            format:"双引号包含的格式信息(占位符)"
            ...:    变量地址列表    &变量名
            返回值:成功输入的变量个数
            注意:scanf需要的是变量类型、变量地址
                变量地址 = &变量名

标准C语言基础知识1相关推荐

  1. c打印无符号整数_C语言基础知识:printf的输出格式,C/C++语言编程讲解

    C语言基础知识:printf的输出格式 printf()函数是格式输出函数,请求printf()打印变量的指令取决与变量的类型.例如,在打印整数是使用%d符号,在打印字符是用%c 符号.这些符号被称为 ...

  2. C语言中的标识符以字母或下划线开头,牛逼大神整理的C语言基础知识,你确定你不码下来?...

    [[怪兽爱C语言]牛逼大神整理的C语言基础知识,你确定你不码下来?]https://toutiao.com/group/6577344220355363341/?iid=15906422033& ...

  3. android studio如何设置输出值的小数点_C语言基础知识:printf的输出格式,C/C++语言编程讲解...

    C语言基础知识:printf的输出格式 printf()函数是格式输出函数,请求printf()打印变量的指令取决与变量的类型.例如,在打印整数是使用%d符号,在打印字符是用%c 符号.这些符号被称为 ...

  4. C语言基础知识入门和C语言入门基础知识大全

    一.C语言基础知识入门 C语言一出现,就以其丰富的功能.强大的表达能力.灵活性.方便性和广泛的应用,在世界范围内迅速普及和普及.C语言不仅高效而且可移植.它可以用来开发应用软件.驱动程序.操作系统等. ...

  5. c语言基础知识(知识点较为完整)

    计算机和c语言基础知识 计算机常识 什么是计算机? 顾名思义,就是能够进行数据运算的机器(台式电脑.笔记本电脑.平板电脑.智能手机) 计算机_百度百科 计算机的发明者是谁 ? 关于电子计算机的发明者是 ...

  6. c语言的main含糊,第1-2章 C语言基础知识

    <第1-2章 C语言基础知识>由会员分享,可在线阅读,更多相关<第1-2章 C语言基础知识(17页珍藏版)>请在人人文库网上搜索. 1.第1-2章C语言基础知识,本章教学内容, ...

  7. 编程语言基础c语言第5版讲解,《程序设计基础》C语言基础知识讲解.ppt

    <<程序设计基础>C语言基础知识讲解.ppt>由会员分享,可在线阅读,更多相关<<程序设计基础>C语言基础知识讲解.ppt(54页珍藏版)>请在人人文库 ...

  8. C语言基础知识总结大全(建议收藏)

    前言:C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭! 1 算法结构 一.顺序结构.选择结构.循环结构:二.循环结构又分 ...

  9. C语言基础知识-数据类型

    C语言基础知识-数据类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常量与变量 1>.关键字 C的关键字共有32个.1>.数据类型关键字(12个)char,sh ...

最新文章

  1. ORA-01940无法删除当前已连接用户
  2. 【Linux 内核 内存管理】内存管理架构 ⑤ ( sbrk 内存分配系统调用代码示例 | 在 /proc/pid/maps 中查看进程堆内存详情 )
  3. 处理2D图像和纹理——显示文字
  4. Xfire方式开发和解析webservice
  5. 校门外的树+矩阵旋转
  6. DL开源框架Caffe | 模型微调 (finetune)的场景、问题、技巧以及解决方案
  7. vue.js将本地文件上传到ftp服务器,vue项目使用FTP传输部署项目服务器,node命令编写...
  8. 在CMakeLists.txt文件中包含Eigen
  9. RTOS系列文章(5):C语言程序运行原理分析:汇编、栈、栈帧、进栈、出栈、保存现场、恢复现场、返回
  10. 【软考系统架构设计师】2015年下系统架构师案例分析历年真题
  11. 编程英语:triggered(触发,引起)
  12. 美国服务器电影网站版权问题,为什么说选择美国服务器做电影网站比较好
  13. Linux系统下查看dsdt table
  14. EC20 GPS RMC格式数据转化
  15. 基于C#通过PLCSIM ADV仿真软件实现与西门子1500PLC的S7通信方法演示
  16. 专家解读:读研到底值不值(转自中华英才网)
  17. 图像处理,计算机视觉,机器视觉,模式识别之间的区别和联系
  18. linux的gromacs模拟分子运动,GROMACS分子动力学模拟技术与应用
  19. mini-imagenet数据处理过程_从头开始训练
  20. the two types of module port connections,by ordered list and by name,shall not be mixed

热门文章

  1. 111. Minimum Depth of Binary Tree
  2. 071-JAVA项目实训:仿QQ即时通讯软件系列讲座六(讲解QQ主界面功能)
  3. 时评:所谓游戏人才六十万缺口背后
  4. 微信小程序-网络请求
  5. 15年用canvas画的
  6. Delphi 10.3.1 Memo打开/保存utf-8不乱码的方法,网上都是胡天!
  7. 基于部分卷积Pconv的图片修复
  8. [转载]--令人拍案叫绝的Wasserstein GAN
  9. python中glob的用途
  10. 1044 mysql_Mysql的常见几种错误:1045,1044