ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

7.8学习

2021-07-12 09:05:57  阅读:175  来源: 互联网

标签:头文件 int unsigned signed 学习 num long 7.8


复习:
   1、常用的linux命令
      ls cd pwd cat head tail more clear rm touch nv cp mkdirwhoami 
      ifconfig ping grep find sudo man

      tar ftp ssh telnet 

   2.vim文本编辑器
       vi是系统自带的文本编辑器,vim是它的增强版
       三大模式:正常、插入、行底
       切换方式:i、Esc :
       正常模式下的操作
           光标:gg G n6 n-  vim file +n  
           删除: 
              x nx dw dd ndd d& d^ dgg
           复制:
              yy nyy p P 
           替换: 
             r cw R 
           撤销:
             u U  ctrl+r
           进入插入模式:
             i\a\I\A\o\O 
             ctrl+p 自动补全头文件、main
           插入模式下:
             jj  Esc ctrl+c
             ctrl+z保存退出 
             ctrl+p 自动补齐标识符
             ctrl+x 保存编译运行
            行底模式下: 
            set nu
            set nonu
            %s/old/new
            !cmd
            >n
            <n 
            /key n向下 N向上 
            w
            q 
            wq  x 
            X 
            
3、C语言简介
     美国贝尔实验室,1970-1973年,肯.汤普逊、丹尼斯.里奇
     C89 C99 C11 gcc 默认c89  -std-gnu99 


------------------------------------------------------------------------------

一、第一个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(int argc,const char* argv[])
{

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

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

}
while();
{

}

二、编译器:
   负责把人能看得懂的记录了代码的文本文件,翻译成计算器能看懂的二进制文件,
   由预处理器、编译器、链接器
   gcc是由GNU组织为了编译Linux内核代码而开发的一款免费、开源的编译器,默认
   采用c89标准,-std=gnu99可以设置语法标准
      常用的参数:
         -E 显示预处理的结果
         -c 只编译不链接//小写
         -o 设置编译结果的名字//小写
         -I 指定头文件的加载路径
         -S 生成汇编代码
         -l 指定要使用的库文件  -lm  -lc
         -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 uint16_t uint32_t uint64_t
             int8_t  int16_t  int32_t  int64_t
          

    浮点型:
          float     4
          double    8
          long double  12/16
          注意:采用科学计算法,二进制与真实数据指间需要进行换算、因此浮点型
          数据耗时要比整形数据多得多,编程时尽量选择整型
          小数点后6位有效

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

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

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


五、变量与常量
   什么是变量:程序在运行期间数值可以变化的叫做变量,相当于存储数据的盒子
   定义:
       类型 变量名;
       int num_i;
       取名规则:
       1、由字母、数字、下划线组成
       2、不能以数字开头 
       3、不能与32个关键字重名 ************作业*****************
       4、见名知意(功能、类型、范围.......)
       printf scanf bool sizeof
    使用:
       赋值:  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   
     
     
     int scanf(const char *format,...);
     功能:输入数据
     format:"双引号包含的格式信息(占位符)"
     ... :  变量地址列表  &变量名
     返回值:成功输入的变量个数
     注意:scanf需要的是变量类型、变量地址 
         变量地址 = &变量名
     
     


      练习1:定义各种类型的变量并初始化,使用printf来显示
 #include <stdio.h>
 
 int main(int argc,const char* argv[])
 {
     signed char num_a = 0;
     signed short num_b = 1;
     signed int num_c = 2;
     signed long num_d = 3;
     signed long long num_e = 4;
     unsigned char num_f = 5;
     unsigned short num_g = 6;
     unsigned int num_h = 7;
     unsigned long num_i = 8;
     unsigned long long num_j = 9;
     printf("num=%d %d %d %d %d %d %d %d %d %d\n",num_a,num_b,num_c,num_d,num_e,num_f,num_g,num_h,num_i,num_j );
 }
     

    练习2:定义各种类型的变量并初始化,使用scanf输入,printf输出

标签:头文件,int,unsigned,signed,学习,num,long,7.8
来源: https://blog.csdn.net/Pandade0/article/details/118667398

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有