C/C++

2023-11-01


摘自: 麦子学院-C语言程序设计及快速入门

学习内容提要

计算机基础知识(C语言相关)
C语言基础导学
C语言进阶导学
一个C语言小项目的实现

关于学习教材

C语言编程.一本全面的Q语言入门教程(第3版)

推荐书籍或资料

代码大全
高质量C语言编程
C语言库函数参考手册
C语言常见问题集

这个课程我们怎么学

1看视频
2结合视频看教材
3难点多理解
4动手多编程
5编码要规范

课程特色

1.真正的零基础课程,从计算机基础开始
2.摒弃枯燥的Q语言语法讲解,就讲学习重点和难点
3.真正有用的C语言课程,内含大量编程经验和技巧
4.适合零基础同时也适合进阶学习,内容由浅入深
5.强调商业编码规范,以后求职Q语言不再是你的门槛
6.老师实际编码操作,从程序设计需求分析,到流程图,到伪代码,到代码实现,真正告诉你该如何编程。

C语言的重要性?

1先看看编程语言排行榜
在这里插入图片描述
2现在哪些开发还会用到C语言?
1)单片机,指针-地址-硬件
2)驱动linux
3)iOS,面向对象特性
4)PC,
3哪些人需要学习C语言?
1)嵌入式
2)linxu底层及应用
3)iOS
Tips:编程语言学习之路
1)语法
2)编码规范
3)程序设计的思想,编码思维

从和编程相关的计算机基础开始

从计算机的组成谈谈程序的运行

代码是怎么变成程序的

产生代码和让代码变成程序的必要工具
一个图看懂代码到程序的过程

在这里插入图片描述

不同的进制,不同的世界

计算机的进制和人类的进制
1什么是进制
2计算机的世界—二进制
3人类的世界—十进制,十六进制
常见的进制转换
http://jingyan.baidu.com/article/495ba84109665338b30ede98.html
Tips:用电脑自带的计算器实现进制快速转换
在这里插入图片描述

Tips:编程中,哪些场合会用到进制的转换

程序和内存空间模型

1两个概念—物理内存及内存空间模型
在这里插入图片描述
2内存空间的基本单位 1字节=8bit(8个空)11111111=0xff=255
3内存空间几个要素
空间大小
地址

打印地址示例

#include <stdio.h>

int main()
{
    int a =POLICE;
    printf("%p\n",&a);
    return 0;
}

返回值:

c:\Users\Vera\Desktop>cd "c:\Users\Vera\Desktop\" && gcc 2.c -o 2 && "c:\Users\Vera\Desktop\"2

000000000064FE2C

00 00 00 00 00 64 FE 2C 2位1个字节,8个字节,64位。
静态地址示例:

#include <stdio.h>

int main()
{
    int a =2;
    static int b=12;
    printf("%p\n",&a);
    printf("%p\n",&b);
    printf("%p\n",b);
    //static b=12;
    //printf("%p %p\n",&a,&b);
    return 0;
}

返回值:

c:\Users\Vera\Desktop>cd "c:\Users\Vera\Desktop\" && gcc 2.c -o 2 && "c:\Users\Vera\Desktop\"2
000000000064FE2C
0000000000408000
000000000000000C //12=0x0C

Tips: bit和byte

1byte=8bit

字符编码基础—谈谈ascii码

字符在计算机中如何存储的

1英文字符的存储
2中文字符的存储(unicode)

1什么是ASC码表
国际上普遍采用ASC编码(American Standard Code for Information Interchange)。美国信息交换标准代码是一种用于信息交换的美国标准代码。7位字符集广泛用于代表标准美国键盘上的字符或符号。通过将这些字符使用的值标准化,
ASCII允许计算机和计算机程序交换信息。ASCI字符集是与ANS字符集中的前面128个(0-127)字符相同。
2如何查看ASC码表

TIPS1:巧用ASC码表的一些编程技巧

·数字字符到数字的转换:数字表示的字符-0x30(48)得到真实的数字

字符转换示例

#include <stdio.h>

int main()
{
    char c='1';
    printf("c=%c,c=%d,c_change=%d\n",c,c,c-48);
    return 0;
}

返回值:

c:\Users\Vera\Desktop>cd "c:\Users\Vera\Desktop\" && gcc 2.c -o 2 && "c:\Users\Vera\Desktop\"2
c=1,c=49,c_change=1

·大小写字母的转换:“a”-“A”=0x32

转换示例

#include <stdio.h>

int main()
{
    char c='A';
    printf("c(char)=%c,c(int)=%d,c_change(char)=%c,c_change(int)=%d,c_change(HEX)=%x\n",c,c,c+32,c+32,c+0x20);
    return 0;
}

返回值:

c:\Users\Vera\Desktop>cd "c:\Users\Vera\Desktop\" && gcc 2.c -o 2 && "c:\Users\Vera\Desktop\"2
c(char)=A,c(int)=65,c_change(char)=a,c_change(int)=97,c_change(HEX)=61

TIPS2:格式输出

%x:普通小写16进制
%X:普通大写16进制
%#x:带0x前缀的小写16进制
%#X:带0X前缀的大写16进制
%hd 中h的意思是短整形
%ld中l的意思是长整型

不同进制打印示例

#include <stdio.h>
int main()
{
    short a = 0b1010110;  //二进制数字
    int b = 02713;  //八进制数字
    long c = 0X1DAB83;  //十六进制数字

    printf("a=%ho, b=%o, c=%lo\n", a, b, c);  //以八进制形似输出
    printf("a=%hd, b=%d, c=%ld\n", a, b, c);  //以十进制形式输出
    printf("a=%hx, b=%x, c=%lx\n", a, b, c);  //以十六进制形式输出(字母小写)
    printf("a=%hX, b=%X, c=%lX\n", a, b, c);  //以十六进制形式输出(字母大写)
    return 0;
}

返回值:

c:\Users\Vera\Desktop>cd "c:\Users\Vera\Desktop\" && gcc 1.c -o 1 && "c:\Users\Vera\Desktop\"1
a=126, b=2713, c=7325603
a=86, b=1483, c=1944451
a=56, b=5cb, c=1dab83
a=56, b=5CB, c=1DAB83
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++ 的相关文章

随机推荐

  • Redis学习笔记(一):CentOS7安装Redis4

    CentOS版本 CentOS Linux release 7 5 1804 Core Redis版本 Redis server v 4 0 9 1 安装 1 1下载 去官网找到下载地址https redis io download 右键复
  • Mysql优化5-选择合适的存储引擎

    一 如何选择存储引擎 myisam 存储 如果对事务要求不高 同时以查询新增为主的 主要考虑使用此引擎 比如bbs的发帖表 回复表 INNODB 存储 对事务要求比较高 保存的数据都是重要数据 比如订单表等等 Memory 存储 数据变化频
  • 人工智能-遗传算法

    一 简介 遗传算法 Genetic Algorithm GA 借鉴了生物学遗传进化的思想 模拟了种群进化过程中经历的繁殖 杂交 基因变异的自然选择和自然变异的过程 遗传算法是一种高效的进行全局搜索和优化的方法 能在 进化 过程中自适应获得适
  • CondaHTTPError: HTTP 000 CONNECTION FAILED for url

    该博客为 Ubuntu 相关 系列博客的第七篇 该系列博客主要对Ubuntu安装各种软件或者库进行一个记录 方便重装系统后快速恢复工作 在学习大数定理和中心极限定理时 发现几个程序 但是运行不了 anaconda没有安装matplotlib
  • Python实现栈

    Python实现栈 关于栈的介绍 请参考 https blog csdn net weixin 43790276 article details 104033337 栈的数据存储结构可以是顺序表 也可以是链表 本篇使用 Python 来分别
  • 使用 Python 和可视化编程控制树莓派机械臂myCobot

    myCobot 280 Pi 是一款 6 自由度多功能桌面机械臂 它由大象机器人研发 使用 Raspberry Pi 作为主控制器 该机器人结构紧凑 运行稳定 非常适合新手入门 它还可以使用多种语言进行编程 简单易用 功能丰富 适合那些有兴
  • MySQL用户权限(Host,User,Password)管理(mysql.user)

    1 新增用户 注 mysql数据库下user表中 Host和User为两个主键列 primary key 已经各版本下非空未设置默认字段 登录后 切换db mysql gt use mysql Reading table informati
  • GIt命令

    获取git授权密钥 ssh keygen t rsa C 换成自己邮箱 然后cat ssh id rsa pub 把控制台输出的内容复制 到gitee github gitlab等网页建立ssh密钥 git init 建立仓库 检出代码 1
  • alibaba开源框架easyexcel文件导出

    alibaba开源框架easyexcel使用 官方文档 https easyexcel opensource alibaba com docs current quickstart write 1 下载 Getter Setter Equa
  • 完整计算机组成系统,计算机组成原理与完整系统结构.doc

    计算机组成原理与完整系统结构 西安财经学院信息学院 计算机组成原理与系统结构 实验报告 实验名称 运算器实验 通用寄存器实验 移位寄存器实验 实验室实验楼418 实验日期 2012 11 27 2012 11 29 2012 12 4 一
  • 谁该来负责拥塞控制

    寻找一种 host 公平而非 packet 公平的方法 有趣的是 CSMA CD 网络就体现了这种方法 端到端拥塞控制算法 cca 准不准先不论 仅说让它们运行 被控制的流至少要持续 2 个 RTT 一条持续传输的流是多数 cca 的约束
  • Android 自定义图片裁剪框功能

    Android自定义图片裁剪框功能 大体的功能如上gif所示 最后蓝色裁剪框中的矩形图片区域可以进行截取并返回一个Bitmap对象 整个裁剪功能由两个自定义的View组件完成 首先是图片显示控件DragScaleView 主要完成图片的双指
  • 访问swagger-ui.html 404报错一秒解决

    访问swagger ui html 404报错一秒解决 搞了好半天终于找到了 1 首先和你spring boot是什么版本根本没关系 spring boot的版本完全可以用最新的 我的是2 6 6 2 主要是swagger的版本不能用3 0
  • vue首屏加载动画

    样式style
  • Codeforces Round #328 (Div. 2)(A B C D)

    Codeforces Round 328 Div 2 tags Codeforces 难得题目不难 结果比赛的时候C题差一分钟没交上去 不然怎么着都能涨个百来分啊 T T Codeforces Round 328 Div 2 A PawnC
  • c++ 实现邮件发送功能

    系列服务器开发 文章目录 系列服务器开发 前言 一 SMTP是什么 二 使用SMTP使用步骤 1 下载编译 命令行使用 2 代码实现 总结 前言 常用的电子邮件协议有SMTP POP3 IMAP4 它们都隶属于TCP IP协议簇 默认状态下
  • jquery获取所有选中checkbox的值

    代码如下 function depositAudit var ck input name checkName single checked var ids if ck length lt 1 alertShow 请最少选中一条信息 else
  • Element tree设置默认展开及选中

    设置默认展开 将default expanded keys的值设为node key的值对应的数组即可
  • 【clickhouse】ubuntu20安装clickhouse并用DBeaver远程管理

    文章目录 1 安装 2 配置 3 外部连接测试 4 相关概念 5 Reference 1 安装 使用Deb安装包 添加证书 sudo apt get install y apt transport https ca certificates
  • C/C++

    文章目录 学习内容提要 关于学习教材 推荐书籍或资料 这个课程我们怎么学 课程特色 C语言的重要性 从和编程相关的计算机基础开始 从计算机的组成谈谈程序的运行 代码是怎么变成程序的 不同的进制 不同的世界 程序和内存空间模型 打印地址示例