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

news2024/12/27 9:59:25

内存

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键进行缩进
  • 单行注释用//多行注释开头用/*结尾用*/

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

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

相关文章

少儿编程在线培训系统:客户服务与学习支持

2.1 VUE技术 VUE它是由HTML代码&#xff0c;配上嵌入在HTML代码里面的Java代码组成的应用于服务器端的语言&#xff0c;使用VUE进行开发能够更加容易区分网页逻辑以及网页设计内容&#xff0c;让程序员开发思路更加清晰化&#xff0c;VUE在设计组件时&#xff0c;它是可以重用的…

流批一体向量化计算引擎 Flex 在蚂蚁的探索和实践

编者按&#xff1a;Flex是蚂蚁数据部自研的一款流批一体的向量化引擎&#xff0c;Flex是Fink和Velox的全称&#xff0c;也是Flexible的前缀&#xff0c;被赋予了灵活可插拔的寓意。本文将重点从向量化技术背景、Flex架构方案和未来规划三个方面展开论述。 作者介绍&#xff1a;…

upload-labs关卡记录11

先上传一个一句话木马试试&#xff0c;居然可以上传成功&#xff0c;复制图片链接&#xff0c;在另一个窗口打开&#xff1a; 会发现&#xff0c;我们明明上传的是shell.php&#xff0c;但是这里就是没有了php,这样我们在执行我们相关的语句的时候就无法执行了&#xff1a; 就…

WebRTC服务质量(08)- 重传机制(05) RTX机制

WebRTC服务质量&#xff08;01&#xff09;- Qos概述 WebRTC服务质量&#xff08;02&#xff09;- RTP协议 WebRTC服务质量&#xff08;03&#xff09;- RTCP协议 WebRTC服务质量&#xff08;04&#xff09;- 重传机制&#xff08;01) RTX NACK概述 WebRTC服务质量&#xff08;…

借助 obdiag,让 OceanBase 参数和变量的对比更简单

本文将介绍 obdiag 工具中参数对比和变量对比功能的适用场景和试用方法。​​​​​​​ obdiag 参数和变量对比功能的适用场景 参数对比功能适用场景 不同observer对于同一参数允许配置不同的值&#xff0c;实际生产环境中&#xff0c;用户可能因多种原因在不同observer上为同…

Net9解决Spire.Pdf替换文字后,文件格式乱掉解决方法

官方文档 https://www.e-iceblue.com/Tutorials/Spire.PDF/Program-Guide/Text/Find-and-replace-text-on-PDF-document-in-C.html C# 在 PDF 中查找替换文本 原文件如下图&#xff0c;替换第一行的新编码&#xff0c;把41230441044替换为41230441000 替换代码如下&#xff…

VBA技术资料MF246:将工作表中形状复制到WORD文档

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

一次医院RIS系统的升级

2020-03-11 目录 数据库升级... 1 数据结构升级... 1 系统配置... 2 WEB服务器准备... 3 启动ASP.NET State Service服务... 3 检查IIS. 4 发布站点... 4 添加应用程序池... 4 发布网站... 5 处理打印模板... 6 web.config的配置... 6 处理图片文件目录... 6 修改W…

显示 Windows 任务栏

显示 Windows 任务栏 1. 取消勾选自动隐藏任务栏2. 重启 Windows 资源管理器References 1. 取消勾选自动隐藏任务栏 Windows 任务栏具有自动隐藏功能&#xff0c;不使用时自动隐藏&#xff0c;使用时显示。 鼠标右键单击桌面上的空白区域&#xff0c;个性化 -> 任务栏。不…

【Unity3D】Jobs、Burst并行计算裁剪Texture3D物体

版本&#xff1a;Unity2019.4.0f1 PackageManager下载Burst插件(1.2.3版本) 利用如下代码&#xff0c;生成一个Texture3D资源&#xff0c;它只能脚本生成&#xff0c;是一个32*32*32的立方体&#xff0c;导出路径记得改下&#xff0c;不然报错。 using UnityEditor; using Uni…

轻量级安全云存储方案Hoodik

什么是 Hoodik &#xff1f; Hoodik 是一款轻量级、安全且自托管的云存储解决方案。它采用 Rust 和 Vue 设计和构建&#xff0c;专注于端到端加密&#xff0c;保护您的数据免受窥探和黑客的侵害。Hoodik 支持文件上传和下载&#xff0c;让您可以轻松地与其他用户共享文件。简单…

[WASAPI]音频API:从Qt MultipleMedia走到WASAPI,相似与不同

[WASAPI] 从Qt MultipleMedia 来看WASAPI 最近在学习有关Windows上的音频驱动相关的知识&#xff0c;在正式开始说WASAPI之前&#xff0c;我想先说一说Qt的Multiple Media&#xff0c;为什么呢&#xff1f;因为Qt的MultipleMedia实际上是WASAPI的一层封装&#xff0c;它在是线…

Linux 大文件管理与 Hugging Face 模型下载实践:解决磁盘空间与大文件传输的全攻略20241226

Linux 大文件管理与 Hugging Face 模型下载实践&#xff1a;解决磁盘空间与大文件传输的全攻略 引言 在 Linux 系统中管理大文件是一项常见但不容忽视的任务&#xff0c;尤其是在处理复杂场景时&#xff0c;比如磁盘空间不足、断点续传下载模型文件、管理日志文件等。通过实际…

TOGAF之架构标准规范-业务架构

TOGAF标准规范中&#xff0c;业务架构阶段的主要工作是开发支持架构愿景的业务架构。 如上所示&#xff0c;业务架构&#xff08;Business Architecture&#xff09;在TOGAF标准规范中处于B阶段&#xff0c;该阶段的主要内容包括阶段目标、阶段输入、流程步骤、架构方法。 阶段…

aPaaS是什么?有何特点?以及aPaaS核心优势有哪些?

​aPaaS是什么&#xff1f; aPaaS&#xff0c;Application Platform as aService&#xff0c;应用程序平台即服务。国际知名咨询机构 Gartner 对aPaaS所下的定义是&#xff1a;“这是基于PaaS(平台即服务)的一种解决方案&#xff0c;支持应用程序在云端的开发、部署和运行&…

【网络分析工具】WireShark的使用(超详细)

网络分析工具——WireShark的使用 简介WireShark软件安装Wireshark 开始抓包示例WireShark抓包界面WireShark 主要分为这几个界面TCP包的具体内容Wireshark过滤器设置wireshark过滤器表达式的规则Wireshark抓包分析TCP三次握手Wireshark分析常用操作 简介 WireShark是非常流…

前端js验证码插件

相关代码,在最上方的绑定资源

URDF文件中inertial数据的描述坐标系说明

这件事的来源是这样的&#xff1a;结构手动把连杆坐标系下描述的惯性张量数据写入了urdf中&#xff0c;给我到以后发现有问题&#xff0c;给我搞懵了&#xff0c;以为我错了这么多年&#xff0c;于是有了本次的深度调研&#xff0c;先上结论&#xff0c;感兴趣的可以参考后文。…

宠物行业的出路:在爱与陪伴中寻找增长新机遇

在当下的消费市场中&#xff0c;如果说有什么领域能够逆势而上&#xff0c;宠物行业无疑是一个亮点。当人们越来越注重生活品质和精神寄托时&#xff0c;宠物成为了许多人的重要伴侣。它们不仅仅是家庭的一员&#xff0c;更是情感的寄托和生活的调剂。然而&#xff0c;随着行业…

Web前端基础知识(三)

表单的应用非常丰富&#xff0c;可以说&#xff0c;每个网站都会用到表单。下面首先介绍表单中的form标签。 --------------------------------------------------------------------------------------------------------------------------------- <form></form&g…