初见C语言

打印 上一主题 下一主题

主题 884|帖子 884|积分 2652

一、第一个C语言程序    1、vim xxx.c  创建.c源文件    2、编写代码,并生存退出    3、gcc xxx.c  编译.c源文件,成功会得到a.out可执行文件    4、./a.out  运行可执行文件        注意:可以合并3、4            gcc xxx.c && ./a.out     #include   程序员所编写的代码不是标准C代码,需要一段程序把它翻译成标准C代码,负责翻译的程序叫做预处理器,  翻译的过程叫做预处理,需要被翻译的代码叫做预处理指令,以#开头的代码叫做预处理指令        #include 功能是导入头文件            #include                  从系统指定路径(/usr/include/)查找头文件并导入            #include "xxx.h"                "" 先从当前的工作路径查找头文件,如果找不到再从系统指定路径查找并导入        stdio.h             头文件:以.h结尾,里面存放的是辅助性代码,绝大多数都是函数的阐明     int main()    {        printf("Hello World!\n");        return 0;    }     main函数:        C语言以函数为单元管理代码,一个函数就是一段具有某一项功能的代码段        main函数是程序的执行入口,必须有且只能有一个        int 是一种数据范例,它体现main函数的执行结果是一个整数        return 功能有两个:            1、结束函数的执行            2、返回一个结果给函数的调用者(return返回值的取值范围是0~255)         main函数的调用者是操纵系统,它的返回值是给了操纵系统的,它的值能反应出程序是如何结束的,一样平常有三类:            正数    出现非常    (别人的错误)            0       一切正常            负数    出现错误    (自己的错误)     可以输入 echo $?  来查看mian返回的值                printf/scanf   是标准库中的函数,负责输出数据、输入数据            printf("想要输出的内容");        转义字符:            键盘上一些无法直接打印显示的符号,用一些特殊的字符组合来体现,这种特殊的字符组合称为转义字符,\n 就是其中之一            \r  回到行首            \t  制表符(一个制表区占8列),相当于Tab,用于输出格式对齐            \b  退格键             \a  铃响            \\  体现一个\            %%  体现一个%   *可以用\12  来体现此时为8进制需转换成十进制再通过ascII码来找到对应n,r,t,回车之类的    \x12  此时是16进制            C语言中以分号作为一行代码的结束,使用大括号分别区域 二、编译器    负责把人能看得懂的记录着代码的文件,翻译成盘算机能看得懂的二进制文件,由预处理器、编译器、链接器组成    gcc是由GNU社区为了编译Linux内核代码而开发的一款免费的编译器      gcc常用的编译参数:        -E  只显示预处理的结果到终端        -std=gnu99  设置C99语法标准        -c  只编译不链接        -o  指定编译结果的名字 -oname或-o name        -S  生成汇编代码        -I  指定头文件的加载路径 -I 加载路径        -Wall   尽大概多地产生告诫        -Werror 把告诫当错误处理        -l  指定要加载的代码库 -lm 使用数学库 告诫可以生成可执行文件,错误不可 三、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语言的文件范例:    .c  源文件    .h  头文件    .h.gch  头文件的编译结果文件(gcc xxx.h),它会被优先使用--->如果后面更改了.h文件内的内容仍然会优先执行.h.gch文件    .i  预处理文件    .s  汇编文件    .o  目标文件    .a  静态库文件    .so 共享库文件 五、存储空间的单元:    Bit  比特  一个二进制位,只能存储0大概1,盘算机中存储数据的最小单元    Byte 字节  八个二进制位,盘算机存储器描述存储容量的根本单元    KB   1024字节    MB   1024KB    GB   1024MB    TB   1024GB    PB   1024TB 六、数据范例    为什么要对数据举行分类?        1、现实生活中的数据本身就自带类别属性        2、对数据举行分类可以节省存储空间、提高运行速度     C语言中数据分类为两大类:自建(程序员自己设计的范例:结构、联合、类)和内建(C语言自带的范例)        注意:运算符 sizeof 可以盘算范例、变量的字节数 --->  sizeof((int)a+1.0)---->8  但是只盘算结果的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位整数            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位整数            注意:signed不加就代表了加                  由于定义无符号整型时比力麻烦,C标准库把这些范例重定义成一些新的简单的范例名:                    需要导入头文件                uint8_t uint16_t uint32_t uint64_t                int8_t int16_t int32_t int64_t                        浮点型: 有小数部分的范例            float   单精度      4  有效数字7            double  双精度      8 有效数字15            long double        12/16            注意:小数点后默认输出六位,但不一定有效            注意:接纳一定的算法对真实的浮点型数据到二进制数据举行转换,这个过程比存储、读取整型要慢得多,编程时尽量使用整型数据    double num(如何判定一个double范例变量的值是否等于0?)因为浮点型数据存储是不准确(十进制小数如何转化为二进制?)的,所以不能直接判定: num == 0    if(num < 0.000001 && num > -0.000001) if(abs(num)这个声明是准确的,但是我们后续使用printf("xxxx");时这个输出函数就会失效      eg:int true;---->当没有#include时如许使用是没问题的;但是一旦引用之后这个声明就成了错误的。        使用:        赋值:  变量名 = 10;                num = 10;        参与运算:  2+(变量名*10);                2+(num*10);        注意:C语言中变量的初始值是随机的,为了安全起见,一样平常在定义时初始化为0     变量的输出与输入:        int printf(const char *format, ...);        功能:输出数据        format:"双引号包含的提示信息+占位符"        ...:变量名列表        返回值:输出字符个数         范例占位符:C语言中通过范例占位符传递变量的范例            signed char    short   int     long    long long                     %hhd          %hd   %d     %ld        %lld        unsigned char  short     int   long  long long                  %hhu        %hu     %u   %lu     %llu        float   %f        double  %lf        long double %LF        字符型 char %c         int scanf(const char *format, ...);        功能:输入数据        format:"双引号包含的占位符"        ...:    变量地址列表        返回值:成功输入的变量的个数        注意:scanf需要提供变量的地址              &变量名 == 变量地址                什么是常量:程序运行期间数值不能改变的叫做常量        100     默认int范例        100l    long        100ll long long        100u    unsigned int        100lu   unsigned long        100llu  unsigned long long        3.14    默认double        3.14f   float        3.14l   long double 八、格式化输入输出  %nd     显示n个字符宽度,不够则补充空格,右对齐  %-nd    显示n个字符宽度,不够则补充空格,左对齐  %0nd   显示n个字符宽度,不够则补充0,右对齐  %n.mf  显示n个字符宽度(小数点也算一位),不够则补充空格,m体现小数点后几位(四舍五入,不够补0),右对齐  %g       不显示小数点后多余的0  %e       以指数情势输出浮点数 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

玛卡巴卡的卡巴卡玛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表