【c语言】简单的c程序设计

内存

1byte=8bit

1KB=1024byte

1MB=1024byte

1G=1024MB

1T=1024G

变量

  • 变量可以由数字、字母和下划线组成且不能以数字开头
  • 任何不满足条件的变量都是非法变量,如含有特殊字符的变量等
  • 变量不能含有空白字符,如空格、换行符等
  • 变量区分大小写
  • 变量不能是c语言中的关键词

变量的命名可以随机,但是要符合命名规则

整数类型

变量拥有三个属性,即变量名、数据类型和值

变量类型

类型说明符

取值范围

所需内存字节数

短整型

short int

-2^15~2^15-1

2

整型

int

-2^31~2^31-1

4

长整型

Long int

-2^31~2^31-1

4

无符号短整型

unsigned short int

0~66535

2

无符号整型

unsigned int

0~4294967295

4

无符号长整型

unsigned long int

0~4294967295

4

注:-2^15~2^15-1为-32768~+32767

-2^31~2^31-1为-2147483648~+2147483647

在同一数据类型的前提下,无符号能表示的范围是有符号的二倍

变量的声明和使用

变量要先声明后使用,其中部分情况还需赋初值之后再次使用,否则会参与运算时自动赋予变量一个随机值(垃圾值),从而使结果远远偏离实际数值。若在编译其中未声明就使用,则会编译报错,如devc++中会出现:

‘变量名称’ was not declared in this scope.

赋值运算

在计算机当中,=的使用方法不同于数学,例如a=b,则是把b的值赋给a,即“右赋左”。

当a==b时,才表示为a值与b值相等。

格式化输出、输入函数printf与scanf

因printf函数包含在stdio.h当中

所以使用时要先声明一下

#include<stdio.h>

由于printf输出时对于输出类型已经确定,不同于c++中cout简单暴力的输出方式,所以输出所用时间一般较为短暂,也有利于对于数据类型的准确理解与把握。

输出字符串printf(“字符串内容”)

长度和宽度修饰符

int x;

printf(“%m.nd”,x);

输出宽为m列,长为n位的十进制整数x

转换字符串

说明

%c

单个字符

%d

十进制有符号整数

%s

字符串(不含空格)

%f

单精度浮点(小数)

%u

十进制无符号整数

%o

八进制有符号整数

%x或%X

十六进制有符号整数

其中在用%s进行字符串的输入时,若含空格则在空格处自动截断。不截断输入字符串的方法是用gets();

在限定短整型时,加h作为前缀

在限定长整型时,加l作为前缀

其中还有赋值抑制符号*

例如身份证号位46521354200010010089

选择性输入出生年月日

scanf(“%*8d%4d-%2d-%2d%*4d”,&year,&month,&day);

结果输入2000-10-01

选择性输出出生年月日

printf(“%*8d%4d-%2d-%2d%*4d”,year,month,day);

结果输出2000-10-01

左右对齐方式:“左负右正”

单个字符的输入输出:getchar() putchar()

字符串的输入和输出:gets() puts()

关键字

c语言关键字(大小写敏感)

auto

double

int

struct

break

else

long

switch

case

enum

register

typedef

char

extern

union

return

conest

float

short

unsigned

continue

for

signed

void

default

goto

sizeof

volatile

do

while

stastic

if

转义字符

常用的转义字符

转义字符

意义

转义字符

意义

\n

回车换行

\\

反斜杠’\’

\t

横向跳到下一制表位置

\’

单号引号符

\v

竖向跳格

\a

鸣铃

\b

退格

\ddd

1~3位八进制所代表的字符

\r

回车

\xhh

1~2位十六进制所代表的字符

\f

走纸换页

浮点型数据

变量类型

所需内存字节数

有效位数

float

4

6位有效数字

double

8

15位有效数字

float对应%f格式的输入与输出        

double对应%lf格式的输入与输出

指数的表示方法45x102->45e2

对于指数的表示e前后必须要有数字,且e后数字不能为小数

常量

八进制常量以前缀“0”开头,如071

十六进制常量以前缀“0x”开头,如0x3A

宏常量,即为define定义

#define 标识符常量 替换文本

利用宏定义后的标识符常量在下面的运算当中会自动替换为替换文本的值

conet常量

可以对于定义的常量进行类型的限制,例如定义

conest double PI 3.141592

运算符

在计算机当中运算符的运用不完全等价于数学中的运用

%模运算即为取余运算,取余数

乘号*在乘法运算中绝对不能省略

运算符优先级相等时,结合方向为自左向右

++自增 --自减

如果运算符放在变量前,那么就先自增自减再参与运算

如果运算符放在变量后,那么就先参与运算再自增自减

在计算机中,真为“1”,假为“0”

逻辑运算符

&单个表示取地址,双个表示按位与:有假则假

||表示按位或:有真则真

!表示逻辑非:真为假,假为真

优先级从高到低依次为“!”“&&”“||”

逗号运算符遵循最右原则

例如:a=(2,6,8)    a的值为8

优先级

运算符

名称或含义

使用形式

结合方向

说明

1

[]

数组下标

数组名[常量表达式]

左到右

()

圆括号

(表达式)/函数名(形参表)

.

成员选择(对象)

对象.成员名

->

成员选择(指针)

对象指针->成员名

2

-

负号运算符

-表达式

右到左

单目运算符

(类型)

强制类型转换

(数据类型)表达式

++

前置自增运算符

++变量名

单目运算符

++

后置自增运算符

变量名++

单目运算符

--

前置自减运算符

--变量名

单目运算符

--

后置自减运算符

变量名--

单目运算符 [4]

*

取值运算符

*指针变量

单目运算符

&

取地址运算符

&变量名

单目运算符

!

逻辑非运算符

!表达式

单目运算符

~

按位取反运算符

~表达式

单目运算符

sizeof

长度运算符

sizeof(表达式)

3

/

表达式/表达式

左到右

双目运算符

*

表达式*表达式

双目运算符

%

余数(取模)

整型表达式/整型表达式

双目运算符

4

+

表达式+表达式

左到右

双目运算符

-

表达式-表达式

双目运算符

5

左移

变量

左到右

双目运算符

>>

右移

变量>>表达式

双目运算符

6

>

大于

表达式>表达式

左到右

双目运算符

>=

大于等于

表达式>=表达式

双目运算符

小于

表达式

双目运算符

小于等于

表达式

双目运算符

7

==

等于

表达式==表达式

左到右

双目运算符

!=

不等于

表达式!= 表达式

双目运算符

8

&

按位与

表达式&表达式

左到右

双目运算符

9

^

按位异或

表达式^表达式

左到右

双目运算符

10

|

按位或

表达式|表达式

左到右

双目运算符

11

&&

逻辑与

表达式&&表达式

左到右

双目运算符

12

||

逻辑或

表达式||表达式

左到右

双目运算符

13

?:

条件运算符

表达式1? 表达式2: 表达式3

右到左

三目运算符

14

=

赋值运算符

变量=表达式

右到左

/=

除后赋值

变量/=表达式

*=

乘后赋值

变量*=表达式

%=

取模后赋值

变量%=表达式

+=

加后赋值

变量+=表达式

-=

减后赋值

变量-=表达式

左移后赋值

变量

>>=

右移后赋值

变量>>=表达式

&=

按位与后赋值

变量&=表达式

^=

按位异或后赋值

变量^=表达式

|=

按位或后赋值

变量|=表达式

15

,

逗号运算符

表达式,表达式,…

左到右

从左向右顺序运算

类型转换

当算术运算、关系运算或逻辑运算的两个操作数类型不同时,精度低的自动向精度高的转换,称为类型提升

char->int->float->double

赋值时的类型转换

若精度高的向精度低的转换,则会丢失部分数据

例如:double a=3.14;int b=a;printf(“%d”,b);

输出结果则为3,自动舍去了小数位。

强制类型转换

例如

double a=3.14;

int b;

b=(int)a;

此时b的值为3,但a的数据类型依然是double型,不发生改变。

注意点

  • 在日常的c语言编程之中要养成良好的习惯,适当用好空格与分行
  • 语句的结尾不要忘记分号
  • 格式化输入的时候切记要加上取地址符&
  • 格式化输出的时候不要取地址符
  • 在c语言之中,预处理是必须的
  • 编程中字符的输入要用英文字符,简单的检查方式就是在devc++之中,若为英文字符,则显示红色或者蓝色,中文字符则会显示黑色,或者与编程的英文看起来极度不协调,编译时报错,此时就应该进行检查
  • 良好的编程排版习惯可以更好的使自己和他人理解,也方便自己在调试改错的时候快速找到错误点进行纠正。
  • 使用TAB键进行缩进
  • 单行注释用//多行注释开头用/*结尾用*/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【c++高阶DS】最小生成树

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 目录 01.最小生成树Kruskal算法Prim算法 01.最小生成树 连通图中的每一棵生成树&#xff0c;都是原图的一个极大无环子图&#xff0c;即&#xff1a;从其中删去任何一条边&#xff0c;生成…

自学记录鸿蒙API 13:实现人脸比对Core Vision Face Comparator

完成了文本识别和人脸检测的项目后&#xff0c;我发现人脸比对是一个更有趣的一个小技术玩意儿。我决定整一整&#xff0c;也就是对HarmonyOS Next最新版本API 13中的Core Vision Face Comparator API的学习&#xff0c;这项技术能够对人脸进行高精度比对&#xff0c;并给出相似…

2024/12/29 黄冈师范学院计算机学院网络工程《路由期末复习作业一》

一、选择题 1.某公司为其一些远程小站点预留了网段 172.29.100.0/26&#xff0c;每一个站点有10个IP设备接到网络&#xff0c;下面那个VLSM掩码能够为该需求提供最小数量的主机数目 &#xff08; &#xff09; A./27 B./28 C./29 D./30 -首先审题我们需要搞清楚站点与网…

redis cluster集群

华子目录 什么是redis集群redis cluster的体系架构什么是数据sharding&#xff1f;什么是hash tag集群中删除或新增节点&#xff0c;数据如何迁移&#xff1f;redis集群如何使用gossip通信?定义meet信息ping消息pong消息fail消息&#xff08;不是用gossip协议实现的&#xff0…

PrimeVue菜单模块(Menu),看api的重要性

以下是对PrimeVue菜单模块&#xff08;Menu&#xff09;的API属性的中文详解&#xff1a; 一、整体概述 PrimeVue的菜单&#xff08;Menu&#xff09;是一个支持动态和静态定位的导航/命令组件&#xff0c;其API通过定义一些辅助的属性&#xff08;props&#xff09;、事件等&…

STM32中断详解

STM32中断详解 NVIC 中断系统中断向量表相关寄存器中断优先级中断配置 外部中断实验EXTI框图外部中断/事件线映射中断步骤初始化代码实现 定时器中断通用定时器相关功能标号1&#xff1a;时钟源标号 2&#xff1a;控制器标号 3&#xff1a;时基单元 代码实现 NVIC 中断系统 STM…

从零开始开发纯血鸿蒙应用之逻辑封装

从零开始开发纯血鸿蒙应用 一、前言二、逻辑封装的原则三、实现 FileUtil1、统一的存放位置2、文件的增删改查2.1、文件创建与文件保存2.2、文件读取2.2.1、读取内部文件2.2.2、读取外部文件 3、文件删除 四、总结 一、前言 应用的动态&#xff0c;借助 UI 响应完成&#xff0…

《机器学习》——线性回归模型

文章目录 线性回归模型简介一元线性回归模型多元线性回归模型误差项分析一元线性模型实例完整代码 多元线性模型实例完整代码 线性回归模型简介 线性回归是利用数理统计中回归分析&#xff0c;来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 相关关系&…

【深度学习环境】NVIDIA Driver、Cuda和Pytorch(centos9机器,要用到显示器)

文章目录 一 、Anaconda install二、 NIVIDIA driver install三、 Cuda install四、Pytorch install 一 、Anaconda install Step 1 Go to the official website: https://www.anaconda.com/download Input your email and submit. Step 2 Select your version, and click i…

在HTML中使用Vue如何使用嵌套循环把集合中的对象集合中的对象元素取出来(我的意思是集合中还有一个集合那种)

在 Vue.js 中处理嵌套集合&#xff08;即集合中的对象包含另一个集合&#xff09;时&#xff0c;使用多重 v-for 指令来遍历这些层次结构。每个 v-for 指令可以用于迭代一个特定级别的数据集&#xff0c;并且可以在模板中嵌套多个 v-for 来访问更深层次的数据。 例如&#xff…

ip归属地是什么意思?ip归属地是实时定位吗

在数字化时代&#xff0c;IP地址作为网络设备的唯一标识符&#xff0c;不仅关乎设备间的通信&#xff0c;还涉及到用户的网络身份与位置信息。其中&#xff0c;IP归属地作为IP地址的地理位置信息&#xff0c;备受用户关注。本文将详细解析IP归属地的含义&#xff0c;并探讨其是…

基于BP训练深度学习模型(用于回归)以及验证误差值

用原生Python训练了一个BP网络&#xff0c;适合没有pytorch等环境的电脑&#xff0c;并用训练的模型对原始数据进行了预测&#xff0c;拿来估测比较误差值了&#xff0c;可以直接拿去用&#xff08;需根据个人数据来调训练次数、学习效率&#xff09;&#xff0c;代码在文章末。…

C#冒泡排序

一、冒泡排序基本原理 冒泡排序是一种简单的排序算法。它重复地走访要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换&#xff0c;也就是说该数列已经排序完成。 以一个简单的整数数…

折腾日记:如何让吃灰笔记本发挥余热——搭建一个相册服务

背景 之前写过&#xff0c;我在家里用了一台旧的工作站笔记本做了服务器&#xff0c;连上一个绿联的5位硬盘盒实现简单的网盘功能&#xff0c;然而&#xff0c;还是觉的不太理想&#xff0c;比如使用filebrowser虽然可以备份文件和图片&#xff0c;当使用手机使用网页&#xf…

从0入门自主空中机器人-2-1【无人机硬件框架】

关于本课程&#xff1a; 本次课程是一套面向对自主空中机器人感兴趣的学生、爱好者、相关从业人员的免费课程&#xff0c;包含了从硬件组装、机载电脑环境设置、代码部署、实机实验等全套详细流程&#xff0c;带你从0开始&#xff0c;组装属于自己的自主无人机&#xff0c;并让…

剑指Offer|LCR 013. 二维区域和检索 - 矩阵不可变

LCR 013. 二维区域和检索 - 矩阵不可变 给定一个二维矩阵 matrix&#xff0c;以下类型的多个请求&#xff1a; 计算其子矩形范围内元素的总和&#xff0c;该子矩阵的左上角为 (row1, col1) &#xff0c;右下角为 (row2, col2) 。 实现 NumMatrix 类&#xff1a; NumMatrix(…

接口Mock技术介绍

相信学习过程序设计的读者朋友们&#xff0c;一定对“桩&#xff08;Stub&#xff09;”这个概念并不陌生。它是指用来替换一部分功能的程序代码段。桩程序代码段可以用来模拟已有程序的某些功或者是将实现的系统代码的一种临时替代方法。插桩方法被广泛应用于开发和测试工作中…

深入解析C#异步编程:await 关键字背后的实现原理

在C#中&#xff0c;async 和 await 关键字用于编写异步代码。本文将详细介绍 await 的实现原理&#xff0c;包括状态机的生成、回调函数的注册和触发等关键步骤。 1. 异步方法的基本概念 在C#中&#xff0c;async 关键字标记一个方法为异步方法&#xff0c;而 await 关键字用于…

【机器学习】SVM支持向量机(一)

介绍 支持向量机&#xff08;Support Vector Machine, SVM&#xff09;是一种监督学习模型&#xff0c;广泛应用于分类和回归分析。SVM 的核心思想是通过找到一个最优的超平面来划分不同类别的数据点&#xff0c;并且尽可能地最大化离该超平面最近的数据点&#xff08;支持向量…

Unity功能模块一对话系统(1)前置准备

也许你也曾被游戏中的对话系统深深吸引&#xff0c;那些精心设计的对白、鲜活的角色配音、甚至是简单的文字对话&#xff0c;往往能让玩家产生强烈的代入感和情感共鸣。如果你正在开发一款游戏&#xff0c;或者计划为你的项目加入一个引人入胜的对话系统&#xff0c;那么 Unity…