iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言的基本语法详解
  • 894
分享到

C语言的基本语法详解

2024-04-02 19:04:59 894人浏览 八月长安
摘要

目录1、标识符与关键字2、常量和符号常量(1)常量和常量符号(2)变量3、C语言数据类型(1)整型常量整型变量原码、反码和补码(2)实型数据实型常量实型变量实型变量的定义以及初始化(

1、标识符与关键字

给变量所取的名字叫变量名,定义变量的名字需要遵循标识符的命名规则。
标识符是用来标识变量、符号常量、数组、函数、文件等名字的有效字符序列。

标识符的命名规则:

1.只能由字母、数字和下划线组成(例如:Score1,Stu_name)

2.第一个字符必须为字母或下划线

3.区分大小写字母

4.C语言内部规定的标识符(即关键字)不能作为用户标识

C语言的关键字:

C语言的关键字,是保留的一些特殊作用的词语,一共32个关键字

关键字 说明
auto 声明自动变量
break 跳出当前循环
case 开关语句分支
char 声明字符型变量或函数返回值类型
const 定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变
continue 结束当前循环,开始下一轮循环
default 开关语句中的"其它"分支
do 循环语句的循环体
double 声明双精度浮点型变量或函数返回值类型
enum 声明枚举类型
extern 声明变量或函数是在其它文件或本文件的其他位置定义
float 声明浮点型变量或函数返回值类型
for 一种循环语句
Goto 无条件跳转语句
if 条件语句
int 声明整型变量或函数
long 声明长整型变量或函数返回值类型
reGISter 声明寄存器变量
return 子程序返回语句(可以带参数,也可不带参数)
unsigned 声明无符号类型变量或函数
uNIOn 声明共用体类型
void 声明函数无返回值或无参数,声明无类型指针
volatile 说明变量在程序执行中可被隐含地改变
while 循环语句的循环条件

C99新建关键字:

_Bool _Complex_Imaginaryinline restrict

C11新建关键字:

_Alignas _Alignof _Atomic _Generic _Noreturn_Static_assert _Thread_local

2、常量和符号常量

常量:在程序运行过程中,其值不会发送变化的量。

变量:在程序运行过程中,其值可以发送变化的量

(1)常量和常量符号

C语言提供的常量类型有整型常量、实型常量、字符常量、字符串常量和符号常量。

用一个标识符来代表一个常量,该标识符叫做符号常量,其一般形式为:

#define 标识符 常量

例如:


#define PI 3.1415926

关于typede和defin的用法与区别:

1.#defien是预处理指令,在编译预处理时进行简单替换,不作正确性检查,不管含义是否正确照样带入,只要在编译器已被展开的源程序时才会发现可能的错误并报错。

例如:#define PI 3.1415926

程序:area = PIrr替换3.1415926r

2.rtypedef是在编译时处理的,通常是用于对已有数据类型取别名,而#define只是简单地替换。

例如:typedef unsigned int uint;

这样就为unsigned int型引入新助记符uint,以后使用uint直接代表unsigned int型。

例如:typedef PI 3.1515926;

编译器会直接报错,原因PI并非已存在类型,其次“3.1515926”不符合命名规则。

(2)变量

1.变量在内存中占用一定的储存单元,在该储存单元中存放变量值。

2.程序中用到的所有变量都必须有一个变量名

3.变量名和变量值是两个不同的概念

请添加图片描述

4.不同类型的变量在内存中占据储存单元的数量及储存的格式不相同,例如:char ch = ‘1';int i = 1;

请添加图片描述

5.变量必须“先定义后使用”,这样做的目的是:

1、便于编译程序程序检测对该变量的运算是否合法。例如:整型变量可以进行求模(余数)运算,实型变量不可以进行求模运算。

2、程序中变量名的正确使用

3、C语言数据类型

请添加图片描述

(1)整型常量

整型常量就是整数,有3种表示形式

1.十进制整常数:就是通常整数的写法,数码取值为0-9。例如:25、-623、0等

2.八进制整数:以0为前缀,数码取值0-7,

例如:

020(十六进制16)

016(十六进制14)

0177777(十六进制65535)

-010(十进制数-8)

几种不合法的八进制数:

256(无前缀0)

079(包含了非八进制数码9)

3.十六进制整型常数:以数字和字母0x开头,即0x作为前缀,数码的取值为0-9和A-F(或字母a-f)

几种合法的十六进制数:

0x2A(十进制数42)

0x1AB0(十进制数6832)

几个不合法 的十六进制数:

5A(无前缀)、0x2H(包含了非十六进制数码H)

整型变量

整型变量分为:基本整型、长整型、短整型、无符号型

请添加图片描述

整型变量的定义及初始化:

定义变量及初始化的一般形式 为:

类型说明符 变量名1 = 值1

例如:


int a,b,c;	//定义a,b,c为整型变量
long x = 10;	//定义x为长整型变量,并附初值10
unsigned int p=2,q=5,m;	//定义p,q,m为无符号整型变量。p赋初值为2,q赋初值为5

整型变量需要注意:
1、允许在一个类型说明符后,定义多个相同类型变量,类型说明符与变量名之间至少用一个空格间隔,各变量名之间用逗号间隔
2、最后一个变量名后面用“;”号结尾
3、变量定义必须放在变量使用之前,一般放在函数体开头
4、没有给变量赋初值,并不意味着该变量中没有数值,只表面给变量中没有确定的值,因此直接使用这种变量的话可能产生莫名其妙的结果,有可能导致运算错误

例程:


#include <stdio.h>
void main(void)
{
    int a = 3, b = 5, c, d;
    c = a+b;
    d = a-b;
    printf("a+b=%d,a-b=%d\n",c,d);
}

原码、反码和补码

计算机中数分为有符号和无符号。他们是以二进制形式表示的,有三种表示方法,即原码和补码。

三种表示方式由符号位和数值位两部分构成

符号位在最高位,用0表示“正”,1表示“负”。

取余位为数值位

请添加图片描述

请添加图片描述

原码:按照二进制的方法来表示数的绝对值,用这个方法得到的就是数的原码。

反码:正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位 按为取反。

补码:正数的补码与其原码相同,负数的补码是将其原码除符号位之外的各位求反之后,在末位再加1

正数的原码、反码。补码相同;负数的原码、反码、补码不同。数值在计算机中以补码形式存放。

例如:求-127的补码

请添加图片描述

(2)实型数据

实型数据又称为实数或浮点数,指是带有小数部分的非整数数值。

实型常量

在C语言中,实数常量只能用十进制数表示,有两种表示方法:

1.小数形式:由数字0~9和小数点组成,当小数部分为零时,小数点不能省略。例如:0.0/24.4、-56.33等均为合法的实型常量

2.指数形式:由十进制数、加阶码标志小写字母“e”(或大写字母“E”)和阶码(必须是整数)组成。

例如:2.3E5(相当于2.3 x 10^5)

以下是不合法的实型常量:

123(无小数点)

E4(阶码“E”之前无数字)

23.-E3(负号的位置不对)

2.7E(无阶码)

实型变量

请添加图片描述
请添加图片描述

实型变量的定义以及初始化

例如:


float a,b,c;			//定义a,b,c为单精度实型变量
double m=3.5,n=5.6;		//定义m,n为双精度实型变量,并分别赋值3.5和5.6

(3)字符型数据

字符常量是用一对单引号括起来的一个字符

如:‘b'、‘z'、‘='、‘?'、‘5'

字符常量特点:

1.字符常量只能是单个字符,不能是多个字符

2.字符常量是以ASCII码形式储存,一个字符常量占用一个字节空间。

ASCII码

ASCII码表示American Standrd Code for InfORMation Interchange。ASCII编码能表示数据范围是00000000~11111111共2^8即256个数据

标准的ASCII码有128个字符,其中:

1.0-31为控制字符,例如,回车换行、文件结束标志、字符串结束标志

2.10个阿拉伯‘0'~‘9'的码值是连续的

3.26个大写字母‘A'-‘Z'是连续的,26和大小写字母‘a'-‘z'是连续的

4.字符常量也可以参与各种运算,如:‘B'-‘A'值为1(字符‘B'的ASCII码值减去66字符‘A'的ASCII码值65结果为1)

字符型变量

1.字符型变量在内存中占用1个字节,只能存放一个字符,并以该字符的ASCII码的值的形式存放

2.在C语言中,一个字符型数据可以按照它的ASCII码进行数据运算

字符型数据储存空间和值范围

类型 字节数 取值范围
char 1 -128~127
unsigned char 1 0~255

例程:给字符变量赋整数值


#include <stdio.h>
int main()
{
    char ch1=65,ch2=66;
    printf("%c,%c\n",ch1,ch2);
    printf("%d,%d\n",ch1,ch2);
}

转义字符字符

转义字符:是由一个反斜杠“"后跟规定,具有特定含义的字符

常用转义字符如下表

请添加图片描述

转义字符使用如下:


#include <stdio.h>
int main()
{
    printf("\"china\"\n");
    printf("My \tCountry.\n");
    printf("I am hap\160\x79.\n");
}

字符串常量

字符串常量是简称字符串,是用一对双撇号(西方双引号英文)括起来的一串字符,包含字符的个数和字符长度
例如:“Hello World”。“a”,“C语言”都是字符串常量。

字符串常量和字符常量区别:

1.字符常量是右边单引号括起来的字符,而字符串常量是由双引号括起来的字符。尽管‘a'与“a”都包含一个字符,但在C程序中,它们都具有不同的含义

2.字符常量只能是一个字符,字符串常量可以是多个字符

3.可以把一个字符串常量赋值一个字符变量,但不能把一个字符常量赋值一个字符变量。

字符串变量

在C语言中没有专门的字符串类型,我们只能使用数组或者指针来间接地存储字符串。


char str1[] = "Hello World!"
char *str2 = "你好世界!"

str1 和 str2 是字符串的名字,后边的[]和前边的*是固定的写法。初学者暂时可以认为这两种存储方式是等价的,它们都可以通过专用的 puts 函数和通用的 printf 函数输出。


#include <stdio.h>
int main()
{
    char WEB_url[] = "hHello World!";
    char *web_name = "你好世界";
    puts(web_url);
    puts(web_name);
    printf("%s\n%s\n", web_url, web_name);
    return 0;
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: C语言的基本语法详解

本文链接: https://www.lsjlt.com/news/136185.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言的基本语法详解
    目录1、标识符与关键字2、常量和符号常量(1)常量和常量符号(2)变量3、C语言数据类型(1)整型常量整型变量原码、反码和补码(2)实型数据实型常量实型变量实型变量的定义以及初始化(...
    99+
    2022-11-12
  • C语言类的基本语法详解
    目录1、由C语言的结构体进入到C++中的类2、C++中如何定义类?3、C++中实例化一个对象4、C++类的访问限定及其封装 C++中的访问限定符5、C++中类的作用域6、成员变量和方...
    99+
    2022-11-12
  • C语言的基本语法有哪些
    C语言的基本语法包括以下内容:1. 注释:用来给代码添加说明和解释,包括单行注释(以"//"开头)和多行注释(以""结尾)。2. 标...
    99+
    2023-08-08
    C语言
  • 详解C语言的基本数据类型
    目录1、C语言基本数据类型2、计算机中的单位3、各数据类型的大小及字取值大小总结1、C语言基本数据类型 2、计算机中的单位 3、各数据类型的大小及字取值大小 对于short i...
    99+
    2022-11-12
  • C语言指针基础详解
    目录1.1:概述1.1.1:内存1.1.2:内存1.1.3:指针和指针变量1.2:指针基础知识1.2.1:指针变量的定义和使用1.2.2:通过指针间接修改变量的值1.2.3:指针的大...
    99+
    2022-11-12
  • 详解C语言初阶基础
    目录1.什么是c语言2.初始化:3.变量和常量4.作用域与生命周期简单阐述:作用域:生命周期(存在与消失):作用域与生命周期的区别作用域:生命周期:5.    &...
    99+
    2022-11-12
  • Python的基本语法详解
    目录一、Python输出1、repr() 或 str() 转成字符串2、字符串填充空格进行格式化3、!a (使用 ascii()), !s (使用 st...
    99+
    2022-11-11
  • C语言map函数的基础用法详解
    目录mapmap具体操作总结map 有N个学生的姓名name和学号ID,要求给你一个学生的name求查找他的ID。 简单做法是定义 string name [ N ] 和 int I...
    99+
    2022-11-12
  • C语言中switch语句基本用法实例
    目录switch语句:switch语句的基本格式C语言switch语句用法补充:用switch来给成绩等级 总结switch语句: 实际生活中,需要做出很多选择,大家都知道...
    99+
    2022-11-13
  • R语言基本语法深入讲解
    基本数据类型 数据类型 向量 vector 矩阵 matrix 数组 array 数据框 data frame 因子 factor 列表 list 向量 ...
    99+
    2022-11-11
  • C语言函数的基本使用和递归详解
    目录本章目标函数是什么C语言中函数的分类库函数如何学会使用库函数?自定义函数函数的参数函数的调用:函数的嵌套调用和链式访问嵌套调用链式访问函数的声明和定义函数递归什么是递归?递归的两...
    99+
    2022-11-12
  • 详解C语言实现推箱子的基本功能
    目录1.前言2.游戏效果展示3.项目分析4.地图实现4.1存储地图4.2打印地图5.控制角色移动5.1找到控制的角色5.2实现移动6.判断胜利总结1.前言 首先推箱子是c语言的一个经...
    99+
    2022-11-13
  • C语言实现单链表的基本功能详解
    1.首先简单了解一下链表的概念: 要注意的是链表是一个结构体实现的一种线性表,它只能从前往后,不可以从后往前(因为next只保存下一个节点的地址).在实现单链表的操作时,需要用指针...
    99+
    2022-11-12
  • C语言实现线性表的基本操作详解
    目录前言一、实训名称二、实训目的三、实训要求四、实现效果五、顺序存储代码实现六、链式存储代码实现前言 这里使用的工具是DEV C++ 可以借鉴一下 一、实训名称 线性表的基本操作 二...
    99+
    2022-11-12
  • 七天学会C语言-第一天(C语言基本语句)
    一、固定格式 这个是C程序的基本框架,需要记住!!! #include int main(){return 0;} 二、printf 语句 简单输出一句C程序: #includeint main(){ printf("大家好,")...
    99+
    2023-09-22
    算法 c++ c语言
  • C语言return的用法详解
    C语言return的用法有:1、对于返回值类型为void的函数,可以使用return语句来提前结束函数的执行;2、对于返回值类型不为void的函数,return语句的作用是将函数的执行结果返回给调用者;3、提前结束函数的执行,在函数内部,我...
    99+
    2023-10-22
    C语言 return
  • C语言详解字符串基础
    目录一、字符串的概念二、字符数组与字符串三、字符串字面量的秘密四、字符串的长度五、小结一、字符串的概念 字符串是有序字符的集合 字符串是程序中的基本元素之一 C 语言中没有字符串的概...
    99+
    2022-11-13
  • 详解C语言初阶基础(2)
    目录1.选择语句(if)2.循环while循环for循环do-while循环补充总结1.选择语句(if) 我们先不讲switch,后面会补充。先来对简单地if进行了解。 我们已经知道...
    99+
    2022-11-12
  • C语言中switch语句基本用法有哪些
    C语言中的switch语句主要用于多分支的条件判断,其基本用法如下:1. 基本语法:```switch (expression) {...
    99+
    2023-08-15
    C语言 switch
  • Go语言基础switch条件语句基本用法及示例详解
    目录概述语法第一种【switch 带上表达式】第二种【switch 不带表达式】第三种【switch 初始化,表达式】注意示例一【根据今天的日期打印今天星期几】示例二【根据分数打印A...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作