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

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


http://www.mrgr.cn/news/81577.html

相关文章:

  • openssl 安装及使用
  • 牛客网刷题 ——C语言初阶——BC112小乐乐求和
  • esp8266_TFTST7735语音识别UI界面虚拟小助手
  • 使用Docker部署一个Node.js项目
  • 新的创作免费下载 | GB-T-43830-2024 智能服装 术语和定义
  • 计算机组成原理的学习笔记(5)--数据的表示与运算·其四 浮点数的储存和加减/内存对齐/大端小端
  • 生成10级子目录,每个子目录下有100个不同大小的文件
  • 并发编程 - 死锁的产生、排查与解决方案
  • Javaweb maven单元测试
  • 前缀树介绍
  • Google Cloud Architect 认证考试错题集7
  • 2024大模型在软件开发中的具体应用有哪些?(附实践资料合集)
  • Java(Sprigboot) 项目调用第三方 WebService 接口实现方式
  • 作品分享:基于全志V3s核心板设计(MPCIE金手指设计)
  • 1.微服务灰度发布(方案设计)
  • Ubuntu网络配置(桥接模式, nat模式, host主机模式)
  • 【Spring】基于XML的Spring容器配置——<bean>标签与属性解析
  • 【物联网技术与应用】实验15:电位器传感器实验
  • 【MySQL】 SQL优化讲解
  • ViiTor实时翻译 2.2.1 | 完全免费的高识别率同声传译软件
  • 基于深度学习(HyperLPR3框架)的中文车牌识别系统-python程序开发测试
  • 如何使用命令行设置Java当前环境是最新版本的JDK
  • Leecode刷题C语言之字符串及其反转中是否存在同一子字符串
  • 电子应用设计方案73:智能家庭书柜系统设计
  • Android使用PorterDuffXfermode模式PorterDuff.Mode.SRC_OUT橡皮擦实现马赛克效果,Kotlin(3)
  • 代码随想录算法【Day2】