C语言-学习之路-01

news2024/11/25 4:46:49

C语言学习之路-01

      • 目录
        • 关键字
        • 数据类型
        • 常量
        • 变量
        • 声明和定义
        • 进制
        • sizeof关键字
        • 整型:int
        • short、int、long、long long
        • 字符型:char
        • ASCII对照表
        • 转义字符
        • 数值溢出
        • 实型(浮点型):float、double
        • 类型限定符
        • 字符串格式化输出和输入

目录

关键字

C的关键字共有32个。

  1. 数据类型关键字(12个)
    char,short,int,long,float,double,unsigned,signed,struct,union,enum,void
  2. 控制语句关键字(12个)
    if,else,switch,case,default,for,do,while,break,continue,goto,return
  3. 存储类关键字(5个)
    auto,extern,register,static,const
  4. 其他关键字(3个)
    sizof,typeof,volatile

数据类型

数据类型的作用:编译器预算对象(变量)分配的内存空间大小。
数据类型:基本类型、构造类型、指针类型
基本类型:整型(int、short、long)、字符型(char)、实型(浮点型:单精度实型float、双精度实型double)。
构造类型:数组类型、结构类型(struct)、联合类型(union)、枚举类型(enum)。
指针类型:char * 、int * 等。

常量

整型常量:100、200、-100、0。
实型常量:3.14、0.125 、-3.123。
字符型常量:‘a’, ‘b’, ‘l’, ‘\n’ 。
字符串常量:“a”,“ab”,“123456”。

变量

变量:在程序运行过程中,其值可以改变;变量在使用前必须先定义,定义变量前必须有相应的数据类型。
标识符命名规则:
1. 标识符不能是关键字
2. 标识符只能由字母、数字、下划线组成
3. 第一个字符必须为字母或下划线
4. 标识符中字母区分daxiaoxie

变量特点:变量在编译时为其分配相应的内存空间、可以通过其名字和地址访问相应内存。

声明和定义

声明:声明变量不需要建立存储空间。如:extern int a;
定义:定义变量需要建立存储空间。如:int a;

换句话来说,定义是声明的一种特例,但并不是所有声明都是定义。
int b; 它既是声明,也是定义。
extern int a; 只是声明,不是定义。

#include <stdio.h>
#include <string.h>
#define WEEK 7  //一周7天   声明了一个 WEEK变量,名字:WEEK ,值:7。一旦初始化,不可以修改。

int main(void)
{
	int a;  //定义一个变量,类型:int,名字:a。
	const int b = 10; //定义了一个const 常量,名字:b,值:10。常量的值不能改变。
	a = WEEK; //可以将WEEK的值赋值给a。
	a = 111;
	printf("a的值:%d\n",a);

	return 0;
}

进制

常见的进制有二进制、八进制、十进制、十六进制。(相互可以转换!后续再详细介绍)
**当前的计算机系统使用的基本上是二进制系统,数据再计算机中主要是以补码的形式存储的。(**原码、反码、补码后续再详细介绍。)
补码特点:

1. 对于正数、原码、反码、补码相同;
2. 对于负数,其 补码为它的反码加1;
3. 补码符号位不动,其他位求反,再加1,得到原码。

在计算机系统中,数值同一用补码来存储,主要原因:

1. 统一了0的编码;
2. 将符号位和其他位统一处理;
3. 将减法运算转变为加法运算;
4. 两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

sizeof关键字

  1. sizeof不是函数,所以不需要包含任何头文件,它的功能是计算一个数据类型的大小,单位为字节。
  2. sizeof 的返回值为size_t;
  3. size_t类型在32位操作系统下是unsigned int ,是一个无符号的整数。
#include <stdio.h>
#include <string.h>

int main() {

    int a = 10;
    printf("a的字节长度:%d\n",sizeof(a));

    size_t c = sizeof(a);
    printf("c:%u\n",c);
    
    return 0;
}

整型:int

打印格式含义
%d输出一个有符号的10进制int类型
%o输出8进制的int类型
%x输出16进制的int类型,字母以小写输出
%X输出16进制的int类型,字母以大写输出
%u输出一个10进制的无符号数
%p后续使用时,再介绍。

short、int、long、long long

数据类型占用空间
short(短整型)2字节
int (整型)4字节
long(长整型)Windows为4字节,Linux为4字节(32位),8字节(64位)
long long (长长整型)8字节

当一个小的数据类型赋值给一个大的数据类型,不会出错,因为编译器会自动转化。但当一个大的类型赋值给一个小的数据类型,那么就可能丢失高位。

字符型:char

字符型变量用于存储一个单一字符,在C语言中用char表示,其中每个字符变量都会占用一个字节。在给字符型变量赋值时,需要用一对英文半角格式的单引号(‘ ’)把字符括起来。
字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的ASCII编码放到变量的存储单元中。char本质就是一个1字节大小的整型。
在这里插入图片描述
字符变量的输入:

#include <stdio.h>
#include <string.h>

int main(void)
{
	char ch;
	printf("请输入ch的值:");

	scanf_s("%c",&ch);   //%c后面不要加 \n

	printf("ch:%c\n",ch);

	return 0;
}

ASCII对照表

在这里插入图片描述
在这里插入图片描述

转义字符

转义字符含义ASCII码值(十进制)
\a警报007
\b退格(BS),将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF),将当前位置移到下一行开头010
\r回车(CR),将当前位置移到本行开头013
\t水平制表(HT),(跳到下一个TAB位置)009
\v垂直制表(VT)011
\ \代表一个反斜线字符 ”\“092
\ ’代表一个单引号(撇号)字符039
\ "代表一个双引号字符034
\ ?代表一个问号063
\0数字 0000
\ ddd8进制转义字符,d范围0~73位八进制
\ xhh16进制转义字符,h范围0~9,a-f, A-F3位16进制

数值溢出

当超过一个数据类型能够保存最大的范围时,数值会溢出。

实型(浮点型):float、double

浮点型变量分为:单精度浮点数(float,4字节,7位有效数字)、双精度浮点数(double,8字节,15-16位有效数字)。

类型限定符

限定符含义
extern声明一个变量,extern声明的变量没有建立存储空间
const定义一个常量,常量的值不能修改
volatile防止编译器优化代码
register定义寄存器变量,提高效率。register是建议型的指令,而不是命令型的指令,如果CPU有空闲寄存器,那么register就会生效,如果没有空闲寄存器,那么register无效。

字符串格式化输出和输入

字符串是内存中一段连续的char空间,以’\0’(数字0)结尾。
字符串常量是由双引号括起来的字符序列,如:“china”、“C program”、"$12.5"等都是合法的字符串常量。
printf函数和putchar函数:
在这里插入图片描述
在这里插入图片描述
scanf函数和getchar函数:

  • getchar是从标准输入设备读取一个char;
  • scanf通过%转义的方式可以得到用户通过标准输入设备输入的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/472187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习笔记之稀疏自编码器

深度学习笔记之稀疏自编码器 引言引子&#xff1a;题目描述正确答案&#xff1a; A B C D \mathcal A \mathcal B \mathcal C \mathcal D ABCD题目解析 介绍&#xff1a;自编码器欠完备自编码器正则自编码器从先验角度解释稀疏自编码器稀疏自编码器的构建 引言 本节以一道算法…

14.基于双层优化的电动汽车优化调度研究(文章复现)

说明书 MATLAB代码&#xff1a;基于双层优化的电动汽车优化调度研究 关键词&#xff1a;双层优化 选址定容 输配协同 时空优化 参考文档&#xff1a;《考虑大规模电动汽车接入电网的双层优化调度策略_胡文平》中文版 《A bi-layer optimization based temporal and sp…

【OfflineExplorer篇】网站固定神器OfflineExplorer基础教程(简)

【OfflineExplorer篇】网站固定神器OfflineExplorer基础教程&#xff08;简&#xff09; 简单记录下&#xff0c;可固定特定网页数据脱机使用—【蘇小沐】 文章目录 【OfflineExplorer篇】网站固定神器OfflineExplorer基础教程&#xff08;简&#xff09;OfflineExplorer简介 …

C++基础 虚函数

参考 顺便记录下写的比较好的博客 C Primer Plus (第6版) C虚函数表 C内存模型 关于vtordisp知多少&#xff1f; 【VC】虚函数 内存结构 - 第四篇&#xff08;多重继承&#xff0c;无虚函数覆盖&#xff09; C 虚函数表剖析 虚函数 静态联编: 在编译过程中函数实现与函数关…

react相关概念

真实DOM和虚拟DOM区别 react关于虚拟DOM和真实DOM 虚拟DOM比较“轻”&#xff0c;真实DOM比较“重”&#xff0c;因为虚拟DOM是React在用&#xff0c;无需真实DOM上那么多属性 虚拟DOM最终一定会转为真实DOM放入页面 JSX JSX: 全称JavsScript XML 是react定义的一种类似于XM…

西门子S7-1200内部存储区和掉电数据保持设置

S7-1200内部存储区分类 S7-1200的内部存储区分为工作存储区、装载存储区和保持性存储区三种。 装载存储区 是非易失性存储区。用于存储用户项目文件&#xff08;用户程序、数据和组态&#xff09;。 如果不使用存储卡&#xff0c;用户使用TIA PORTAL软件下载项目即下载到CPU内…

jpg图片怎么压缩大小,3个有效工具分享

jpg图片怎么压缩大小&#xff1f;很多小伙伴都会用电脑来保存平时拍摄在的照片吧&#xff0c;拍摄的照片大多是jpg格式的&#xff0c;如果图片的体积太大&#xff0c;那么可能会占用很多的电脑存储空间&#xff0c;最后的结果是电脑变得非常慢&#xff0c;甚至卡死。平时我们在…

Python词云图的制作与案例分享

一、基本知识 Python 有很多可用于制作词云图的库&#xff0c;其中比较常用的有 wordcloud 和 jieba。 wordcloud 是一个用于生成词云图的 Python 库&#xff0c;其使用了 Python 的 PIL 库和 numpy 库。您可以使用 pip 命令来安装 wordcloud 库&#xff1a; pip install wo…

《计算机网络——自顶向下方法》精炼——2.6.2-2.7.1

“An investment in knowledge pays the best interest.” - Benjamin 文章目录 分布式散列表&#xff08;键-值&#xff09;对散列函数逻辑上的实现环形DHT对等方扰动对等方离开对等方加入 UDP套接字编程客户端代码服务器端代码 分布式散列表 分布式散列表是一种数据库。集中…

NIO基础 - 网络编程

non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream&#xff0c;它就是读写数据的双向通道&#xff0c;可以从 channel 将数据读入 buffer&#xff0c;也可以将 buffer 的数据写入 channel&#xff0c;而之前的 stream 要么是输入…

STM32配置ADC2(DMA)进行采集 DAC 输出-1

1.实验目标 在正点原子的ADC&#xff08;DMA&#xff09;例程上&#xff0c;将ADC1改成ADC2来采集电压&#xff0c;并且进行测试 开发板&#xff1a;正点原子探索者STM32F407ZG 2.查看adc.h和开发指南需要修改哪些配置 ADC相关 通过查看开发指南我们发现&#xff0c;ADC1 和…

垃圾分类算法

垃圾分类算法 垃圾分类算法系统整体结构Python环境TensorFlow环境微信小程序及后台服务器环境数据预处理 垃圾分类算法 基于TensorFlow和VGG-16卷积神经网络训练垃圾分类模型&#xff0c;通过服务器实现分类模型移植到移动端&#xff0c;并在微信小程序中进行应用。 系统整体…

【ROS仿真实战】机器人模型描述文件介绍(二)

文章目录 前言一、URDF与XACRO简介1.1 URDF1.2 XACRO 二、三维模型的选择DAE还是STL&#xff1f;三、 总结 前言 URDF和XACRO是ROS机器人领域中用于描述机器人模型的两种XML格式文件&#xff0c;都是使用XML语法来定义机器人模型的结构、物理特性以及运动学参数等。URDF (Unif…

还在用MySQL存日志?

1. 引言 随着智能硬件成本降低和互联网网络的发展&#xff0c;在生活中场景的设备都已接入了网络中&#xff0c;其中传感器成为了设备获取外界信息的眼睛&#xff0c;网络成为设备交流的桥梁。在设备的交互中&#xff0c;往往存在着触发源&#xff0c;即标识控制指令的来源&am…

大型水利投资集团,打造数智财资管理新范式

随着我国城市化进程的不断推进&#xff0c;城市基础设施在国民经济中的作用愈加重要&#xff0c;其建设水平直接影响一个城市的竞争力。国有城投、水投等企业作为城市基础设施建设的主要参与者&#xff0c;其重要性不言而喻。随着国家、地方对基础设施重要性认识的加深以及政府…

第十章 游戏对象和组件访问

本节我们主要学习GameObject类&#xff0c;该类用于表示任何存在于场景中的游戏对象。这个类继承自Unity Object类&#xff08;不是C#语言的Object类&#xff09;&#xff0c;我们可以理解这个Unity Object类是所有Unity的基类。这个Unity Object基类比较简单&#xff0c;我们很…

啃完这份笔记,18K妥妥的了......

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;得准备面试了&#xff0c;又不知道从何下手&#xff01;为了帮大家节约时间&#xff0c;特意准备了一份面试相关的资料&#xff0c;内容非常的全面&#xff0c;真的可以好好补一补&#xff0c;希望大家在都能拿到理想…

MATLAB | 如何使用MATLAB绘制高度自定义的桑基图(sankey)

我之前也出过一个超简单的桑基图绘制函数&#xff0c;但是无法应对很多特殊情况&#xff0c;在这里我将其重构了一些写成了类&#xff0c;加了很多内置修饰函数&#xff0c;实现了流入流出数据不相等或者跨层数据流动的特殊情况绘制&#xff0c;首先展示一下使用我编写的函数能…

基于DSP+FPGA+ADS1282支持32Bit高精度数据采集方案(二)模拟电路设计

如图 4.1 所示是系统硬件系统的信号框图&#xff0c;数字信号处理板上的主要核心是 两个处理芯片&#xff0c;即 FPGA 和 DSP &#xff0c;其中 FPGA 主要作用是做 DSP 和外围接口的 桥梁及数据预处理&#xff0c; DSP 做为数据解算核心。 FPGA 通过各种的数据总…

【C++初阶】类和对象(一)

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C初阶 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C初阶】…