C语言编程的一些基础知识

C语言编程基础

程序创建

源程序的命名要以 .c 结尾

一般使用gcc编译器进行编译

注释:1. // 单行注释 2. /* */ 多行注释 (注释十分重要,不可省略,应当表述清楚明白)

#include<stdio.h>

“#” 代表预处理指令的开始
include 代表包含
stdio.h 代表标准输入输出库(是系统环境中
提供的编写好的一部分函数)
< > 表示引用系统环境当中提供的库文件

函数的基础格式: 返回值 函数名 (函数的参数列表)

  • int main(int argc,const char *argc[])

  • int 代表main 函数的返回值为int类型

  • main main函数是固定的C语言程序(C-like)的入口有且仅有一个

  • int argc,const char *argc[] 是main函数的参数

  • printf 为标准输入输出库中的函数,用于标准输出

三大结构

顺序结构:

通过运算符的结合性,代码从上往下执行来保证

选择结构:

通过分支语句保证条件满足和不满足,来进行控制

  • if-else,switch-case

循环结构:

通过循环语句保证条件满足和不满足,循环进行

  • for,while,do-while

C语言变量相关说明

标识符

  • 给程序中的实体(变量、函数、数组、结构体及文件)起的名字
  • 用户标识符: 符号变量名 变量名 用户函数名等
    系统标识符: 关键字(int、static、if…) 系统函数名 预编译指令

变量

  • 命名方式:
    1.只能由字母、数字、下划线三种字符组成
    2.第一个字符必须是字母或下划线
    3.C语言中大写字母与小写字母不同
    4.标识符的命名应当做到见名知义

  • 变量类型

    • 基本类型:
      整型—短整型(short)
      长整型(long)整型(int)
      字符型(char) ‘0’-48 ‘A’-65 ‘a’-97
      浮点型(实型)—单精度型(float)双精度型(double)
      枚举类型(enum)
    • 构造类型:数组类型
      结构体类型(struct)
      共用体类型(union)
    • 指针类型
    • 空类型(void)
  • 格式化输出

    • 格式字符要用小写
      格式字符与输出项个数相同,按先后顺序一一对应
      输出转换:格式字符与输出项目类型不一致,自动按指定格式输出
    • %d 输出十进制整数 , %x 十六进制无符号整数 , %o 八进制无符号整数
      %u 不带符号的十进制整数 , %c 单一字符 , %s 字符串
      %e 指数形式浮点小数 , %f 小数形式浮点小数 , %g e和f 中较短的一种
      %% 百分号本身
  • 存储位置

BSS段:通常是指用来存放程序中未初始化和零值的全局变量
代码段(text):通常是指用来存放 程序执行代码
数据段(data):通常是指用来存放程序中 已初始化的非零 的 全局变量
堆(heap):用于存放进程运行中被动态分配的内存段
栈(stack):存放程序的 局部变量 (但不包括static声明的变量, static 意味着 在数据段中 存放变量)

变量的作用域和生命周期

变量的作用域:

和编译阶段有关,如果超出作用域会导致编译错误

  • 基于全文件的作用域,称为全局变量,会用到多文件编译
  • 基于本文件的作用域,一般称为静态全局变量,之和这个文件有关,其他 文件无法使用
  • 函数内的局部变量,只能够在本函数使用
  • 基于域的的局部变量,只能够在域中使用

变量的生命周期:

与运行阶段有关,如果超出生命周期会导致运行错误

函数设计

函数

  • 声明:对于一个函数最基本特征的说明,一般写在函数开头或头文件中
  • 调用:函数的调用就是函数的使用方式
  • 实现:需要完整带有函数主体内容

模块化:

将一个大程序按功能分割成小模块

  • 特点:
    1.各模块相互独立、功能专一、结构清晰、接口简单
    2.控制了程序设计的复杂性
    3.提高元件的可靠性
    4.缩短开发周期
    5.避免程序开发的重复劳动
    6.易于维护和修理
  • 开发方法:自上而下,逐步分解,分而治之

运算符与表达式

运算符(完成变量或表达式运算的符号)

  • 运算符一般用于多个数值(变量、常量、表达式的值)的处理
  • 表达式 可由 运算符+操作数+表达式 构成
  • 语句 一句话以 ; 或者 {} 结束

左值与右值

  • 左值:指能够在“=”左边存在的值,也就代表着它可以被赋值
  • 右值:指能够在“=”右边的值,它可以进行取值操作

编译过程

            编译期        链接期           运行期
编译源文件 —> 目标程序 —> 可执行程序 —> 结果
.c文件            .o文件         a.out文件

  • 编译期:

    • 预处理:将源文件当中的预处理指令替换为对应的内容
      命令 gcc -E 源文件名
    • 编译:将处理后的文件转换成对应的汇编文件,此时会生成一个源文件名加后缀.s的文件
      命令 gcc -S 源文件名/前一步生成的预处理文件文件名
    • 汇编:将汇编文件转换为目标文件(二进制代码文件)此时会生成一个后缀为.o文件
  • 命令 gcc -c 源文件名/前一步生成的汇编文件文件名

  • 编译期出错 :一般为C语言语法性的错误

  • 链接期

    • 将前一步生成的目标文件和系统的库文件合并成为可执行文件
    • 链接期出错 :一般为找不到调用的错误
  • 运行期

    • 运行期出错 :会导致程序崩溃的错误一般是由于不符合系统处理的错误,以及数据性的错误
  • https://blog.csdn.net/weixin_44708229/article/details/108321122

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值