linux下的C语言基础学习

vim:编辑器
gcc:编译器

1.main --> hello world!
  格式:functype funcname(lists)
  {
   body
  }
  
2.基本属性
  type
: 决定变量空间大小
      sizeof() 后面可以跟变量名或变量类型
      sizeof(char) = 1
      sizeof(short) = 2
      sizeof(int) = 4
      sizeof(long) = 4
      sizeof(float) = 4
      sizeof(double) = 8
      sizeof(long double) = 12   【单位:字节】

       决定可执行的操作
    
     算术运算符:+ - * / % ++ --   【浮点数不可以求模】
    
     关系运算符:> >= == <= < !=   【成立结果为1,不成立结果为0】
    
     逻辑运算符: 逻辑与 &&  【如果有一个条件为逻辑假,则整个表达式为假】
         逻辑或 ||   【如果有一个条件为逻辑真,则整个表达式为真】
         逻辑非 !   
         逻辑真  非零  
         逻辑假 0   【结果非真(1)即假(0)】
         
     位运算符:>> << ~ ^ & | 
        【计算机识别的据都是二进制数字,存储的是正数,则以源码存储;存储的是负数,则以补码存储】
        【补码:对负数取绝对值,得到源码,再取反加1】
        【取反不考虑符号位】
         位与:   位或:   位非:  异或:
         1 & 1 = 1  1 | 1 = 1  1 ~= 0  1 ^ 1 = 0
         1 & 0 = 0  1 | 0 = 1  0 ~= 1  1 ^ 0 = 1
         0 & 1 = 0  0 | 1 = 1      0 ^ 1 = 1
         0 & 0 = 0  0 | 0 = 0      0 ^ 0 = 0
         
         位移:【逻辑位移:不考虑符号位】
         【算术位移:考虑符号位】
         【最高符号位:0表示正数;1表示负数】
         【算术右移:低位丢掉,高位补符号位】
         【逻辑左移:高位丢掉,低位补0】
         
    条件运算符:【三目录运算符】
         【格式:con ? true :flase】
         
     赋值运算符:= += -= *= /= %= |= &= ^= >>= <<=
    
    :,
    
         
  varname:决定变量地址
    
  value:变量的内容
    
  
3.函数
  
  一个源文件(.c)生成可执行二进制文件(a.out)
  
  四个步骤:
   第一步:预处理  .i
     作用:处理伪代码和特殊字符,然后把代码展开放入源文件中
     -->伪代码:#开头的代码统称伪代码(头文件、宏命令、条件编译)
      -->头文件:#include <...>
      -->宏定义:#define <...>
      -->条件编译:#if ... #endif
     -->特殊字符: _LINE_   _FILE_  _DATE_   _TIME_
     gcc -E name.c -o name.i
     
   第二步:编译 .s
     作用:检查语法和词法规则,生成汇编代码
     gcc -S name.c -o name.s
     
   第三步:汇编 .o
     作用:把汇编代码生成二进制代码或者目标代码
     gcc -c name.c -o name.s
     
   第四步:链接 
     作用:使二进制代码形成一个有机整体
         需要链接动态库或者静态库
     ldd ./a.out
     gcc name.o -o name
     
  输入输出语句:
    输出语句:printf  
     【格式:int printf(const char *format, . . .);】
     【返回类型:int】
     【参数:至少要有一个参数】
     【注意:是一个行缓冲函数】
     fflush(stdout);表示输出缓冲区
     fflush(stdin);  表示刷新输入缓冲区
     fflush(NULL);表示刷新所有缓冲区
        fprintf
     【格式:int fprintf(FILE *stream, const char *format, ...);】
        sprintf
     【格式:int sprintf(char *str, const char *format, ...);】  
        snprintf
     【格式:int snprintf(char *str, size_t size, const char *format, ...);】
     
     标准输入:stdin
     标准输出:stdout
     错误输出:stderr
     
     指定数据位宽:m.n:
     【m表示整个数据位宽】
     【n表示小数部分位宽】
     【+表示右对齐,可以省略】
     【-表示左对齐】
     
    输入语句:scanf
     【格式:int scanf(const char *format, ...);】
        fscanf
     【格式:int fscanf(FILE *stream, const char *format, ...);】
        sscanf
     【格式:int sscanf(const char *str, const char *format, ...);】
     【注意:main 函数返回值范围(0~255)】
       
    注释:
     【行注释://?】
     【模块注释:/*  */】
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值