当前位置: 首页 > news >正文

C语言基础_IDE、进制转换、基本数据类型、输入输出函数、运算符

0、C语言IDE:Visual Studio

  • IDE:c语言的集成开发环境,使用Visual Studio,VS是由微软公司开发的,支持多种编程语言,对于C或者C++开发使用VS,是因为相对其他编辑器,VS可以更好的开发桌面应用和系统级程序,VS是一个集成开发环境,其中包含了C或者C++的编辑器(敲代码)、编译器(生成可以直接执行的文件的应用程序)、调试器(调试运行代码的工具)。
  • VS的安装:软件下载安装路径可以装到除C盘之外的其他盘,只需要在安装过程中遇到安装路径的时候,把默认的C改成其他盘符即可。
  • 创建项目的时候,是通过:文件——新建——项目——空项目——在配置新项目的时候要注意勾选“将解决方案和项目放在同一目录中”,选择对应的目录创建即可。
  • 在创建好的项目当中创建C程序的方法:从项目源文件——添加——新建项——C++文件,然后设置创建的C程序名称,再修改后缀为.c即可。(C程序在VS中是通过C++程序的创建方式创建的),打开项目程序的方式是打开项目中以.sln结尾的文件。
  • 关于同一项目源文件中出现多个程序,且这多个程序中都有主函数的解决办法就是把不需要运行的程序通过属性修改的方式“从生成中排除”,确保项目中只有一个主函数即可。
  • VS从win到linux到macOS支持跨平台调试。

1、C语言基础知识:

  • C的初始标准有K&R,然后就是ANSI标准以及C89或者C90标准(学习标准,也是目前的主流标准),主流编辑器对C99标准的支持不一致,C11扩展标准,目前没有完全支持的编辑器。目前学习主流就是C89标准。
  • C语言无自动内存回收(GC),依赖开发者手动管理内存(malloc/free),减少运行时开销,这一点就区别于解释型语言python。
  • C语言开发框架在这里插入图片描述- C语言是一种面向过程的语言,C++是一种支持面向过程,也支持面向对象的语言,面向过程的语言,就好比造车要懂得制作每一个部件,面向对象的语言,重点是知道怎么组装车辆。

2、C语言中的变量:

  • 先写变量类型,再写变量名,然后给变量赋值。
  • 如果遇到定义同一种类型多变量的情况,可以依次通过逗号隔开定义。
  • 变量命名:由字母、数字、下划线组成。开头不能是数字,尽量不要用下划线开头,不能和关键字重合。建议使用小驼峰命名法或者下划线命名法。
  • C语言中的关键字:
    基本类型(5个)
    char:声明字符型变量
    int:声明整型变量
    float:声明单精度浮点型变量
    double:声明双精度浮点型变量
    void:声明无类型(用于函数返回值或指针)
    ‌类型修饰符‌(4个)
    short:声明短整型变量
    long:声明长整型变量
    signed:声明有符号类型变量
    unsigned:声明无符号类型变量
    ‌复杂类型‌(3个)
    struct:声明结构体类型
    union:声明联合体类型
    enum:声明枚举类型
    二、控制语句关键字(12个) ‌
    ‌循环控制‌
    for / while / do:循环语句
    break:跳出当前循环
    continue:结束当前循环并进入下一轮
    ‌条件分支‌
    if / else:条件判断
    switch / case / default:多分支选择
    ‌跳转语句‌
    goto:无条件跳转
    return:函数返回值
    三、存储类型关键字(4个) ‌
    auto:自动变量(默认局部变量,现代编程极少显式使用)
    register:建议编译器将变量存入寄存器
    static:声明静态变量(生命周期延长至程序结束)
    extern:声明外部变量(跨文件引用)
    四、其他关键字(4个) ‌
    const:声明只读变量(值不可修改)
    sizeof:计算数据类型或变量的内存大小
    typedef:为数据类型定义别名
    volatile:防止编译器优化(变量可能被意外修改)

3、C语言中的进制转换:

  • 十进制,从1-9,遇10进1,最低位是10的0次方依次类推;2进制,从0到1,遇2进1,最低位是2的0次方依次类推;其他8进制、16进制一个道理。
  • 高进制转低进制用短除法,低进制转高进制都得通过10进制作为中间值转换。

4、C语言中的基本数据类型:

  • 整型
    有符号的整型(其中有一位是符号位)
    (signed)short短整型,占用空间是2个字节,取值范围:-215到215-1
    int整型,占用空间是4个字节,取值范围:-231 到231-1
    long长整型,占用的空间(window中是4个字节,linux中32位是4个字节,64位就是8个字节),取值范围:-231~231-1
    long long 长长整型,占用的空间是8个字节,取值范围:-263~263-1

    无符号的整型
    unsigned short 无符号短整型,取值范围:0~2^16-1
    unsigned int无符号整型,取值范围:0~2^32-1
    unsigned long无符号长整型,取值范围:0~2^32-1
    unsigned long long无符号长长整型,取值范围:0~2^64-1

  • 浮点型
    float:只能保留7位有效数字是精确的
    double:可以保留15~16位有效数字
    long double(C99的语法):可以保证19位有效数字,因为是C99专属的,一般不建议使用

  • 字符类型

    • char型,可以表示字符类型,占用一个字节,范围是-128到127,如果是无符号,取值范围就是0到255

    • ASCII表(美国标准信息交换码)
      在这里插入图片描述

      • 不可见字符
        图中的灰色部分,0~32和127,一般是一些指令、分隔符等等。

      • 可见字符
        33~127,可见字符中比较重要的部分
        字母字符(黄色部分):大写字母65到90,小写字母97到122
        数字字符(蓝色部分):48~57

      • 转义字符
        一般会将不具有特殊含义的字符串转化为具有特殊含义的字符,或者将有特殊含义的字符转化为普通字符。
        \n:代表换行的意思
        \t:代表水平制表符:8个字符作为对齐单位,不足8个,空位补足8个,大于等于8个,就会重新空8个对齐
        \:输出一个反斜杠
        ":输出一个双引号


5、C语言中的输入和输出:

  • 在VS中使用scanf之前要先设置项目的属性,忽略特定警告(4996、6031)
  • printf的基本使用
    • printf中的第一个用双引号引起来的内容是常量字符串,里面可以使用%作为占位符,每个占位符都需要在后面加上对应的参数,将数据解释成不同的类型
    • 三类类型说明符
      • 按照进制和符号来区分
        %u:十进制
        %o:八进制
        %x/X:十六进制
        以上三个都是以无符号的方式来输出的
        %d:有符号的十进制

      • 按照类型来区分
        %i:整型
        %f:浮点型
        %c:字符型
        %s:字符串类型
        %p:指针类型

      • 按照科学计数法输出
        %g

  • scanf和printf中也可以设置格式控制输出宽度和精度。
  • 一个程序中只有一个stdin和stdout,叫做输入输出缓存,所有的输入输出都是共享这唯一的一块接口。
  • 我们从缓存中将数据读取出来,或者打印出来,内容会从输入输出的缓存中清除掉。
  • 缓存大小是有限制的,一般是1KB,缓存满了之后会自动清空。

6、C语言中的运算符:

  • 下图所示为C语言中运算符的优先级:括号、自增、自减、乘除取余、加减、左移、右移动、关系、位运算、逻辑、赋值、逗号。
    请添加图片描述

总结:基础部分,要了解工具、C89标准、基础数据类型

http://www.dtcms.com/a/316920.html

相关文章:

  • 一文搞定JavaServerPages基础,从0开始写一个登录与人数统计页面
  • 模拟面试总结
  • JSP相关Bug解决
  • Vue.js 教程
  • 市场与销售协同:CRM如何打破部门数据孤岛?
  • 思途Mybatis学习 0805
  • 一个小巧神奇的 USB数据线检测仪
  • LabVIEW 2025 安装攻略(附图文教程)适用于测试与自动控制领域
  • 亚马逊广告进阶指南:大词 VS 长尾词
  • 数据结构2.(双向链表,循环链表及内核链表)
  • 怎么在公司存活下去
  • SAP FI模块凭证增强逻辑的策略
  • 飞算 JavaAI:开启 Java 开发智能自动化新时代
  • open3d python 鞋底点云点胶路径识别
  • windows 系统装机入职版
  • Java 模版进阶
  • C#案例实战
  • 18day-人工智能-机器学习-分类算法-朴素贝叶斯分类
  • 8.5学习总结
  • Linux下部署Minecraft服务器
  • sqli-labs靶场less36-less40
  • 计算机二级java选择题真题【内附解析】
  • 页表实现机制,分页的缺点,三层页表的原理,页表的意义
  • 微软Dragon Ambient eXperience (DAX) 深度解析
  • mq_open系统调用及示例
  • 嵌入式ARM程序高级调试基础:2.举例说明中断处理时PC值和LR寄存器的具体关系?
  • 数据结构(三)双向链表
  • Linux的LVM逻辑卷管理操作指南
  • 网络编程异步connect学习
  • SpringCloud学习------Hystrix详解