初识C语言——详细入门一(系统性学习day4)

news2024/12/26 3:28:05

目录

前言

一、C语言简单介绍、特点、基本构成

简单介绍:

特点:

基本构成:

二、认识C语言程序

标准格式:

简单C程序:

三、基本构成分类详细介绍   

(1)关键字

(2)数据类型

计算机中常用存储单位

数据类型的取值范围

打印输入类型

(3)常量和变量

常量的分类:

对各种常量代码的演示:

变量的分类:

定义变量的方法如下:

总结


前言

   本篇文章将详细地介绍C语言入门基础。


一、C语言简单介绍、特点、基本构成

简单介绍:

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

特点:

(1)简洁的语言

(2)具有结构化的控制语句

(3)丰富的数据类型

(4)丰富的运算符

(5)可对物理地址进行直接操作

(6)代码具有较好的可移植性

(7)可生成高质量、目标代码执行效率高的程序

基本构成:

  1. 关键字(Keywords):C语言中有一些被固定为特定用途的单词,称为关键字。这些关键字在语法中有特殊含义,不能用作标识符(变量名、函数名等)。例如,int、if、for等都是C语言的关键字。  

  2. 标识符(Identifiers):标识符是由字母、数字和下划线组成的字符序列,用来表示变量、函数、结构体等。标识符需要满足一定的命名规则,如以字母或下划线开头,不能使用关键字作为标识符。

  3. 数据类型(Data Types):C语言支持多种数据类型,包括基本数据类型和派生数据类型。基本数据类型包括整型(int)、浮点型(float、double)、字符型(char)等,派生数据类型包括数组、结构体、枚举等。

  4. 变量(Variables):变量是用来存储和表示数据的内存位置,需要在使用之前进行声明。声明变量时需要指定其数据类型和变量名,以便编译器为其分配内存空间。

  5. 运算符(Operators):C语言提供了丰富的运算符,用来进行各种数学和逻辑运算。常见的运算符包括算术运算符(+、-、*、/等)、关系运算符(<、>、==等)、逻辑运算符(&&、||等)等。

  6. 控制结构(Control Structures):C语言提供了多种控制结构,用于控制程序的执行流程。常见的控制结构包括条件语句(if-else)、循环语句(for、while、do-while)和跳转语句(break、continue、return等)。

  7. 函数(Functions):C语言以函数为基本的程序组织单元。函数是一段独立的代码块,用来完成特定的任务。C语言提供了函数库,包含了大量常用的函数,也可以自定义函数来实现特定功能。

  8. 数组(Arrays):数组是一种存储相同类型数据的连续内存空间。通过下标可以访问数组中的元素。C语言中的数组下标从0开始。

  9. 指针(Pointers):指针是一种特殊的变量,用来存储其他变量的内存地址。通过指针可以间接访问和修改变量的值,还可以动态分配内存空间。

  10. 结构体(Structures):结构体是一种自定义的数据类型,可以将不同类型的数据组合在一起,形成一个新的复合类型。结构体的成员可以是不同的数据类型。

二、认识C语言程序

标准格式:

#include <stdio.h>                //引入头文件
int main(void)                    //main函数,程序的入口
{
			
	return 0;                     //结束函数,返回
}     

简单C程序:

#include<stdio.h>             //引入头文件

int main(void)                     //main 函数是程序的入口,程序从main函数第一行开始执行
{                           //一个项目中main(主)函数有且只有一个                           
	printf("hello world!\n");//printf 为输出打印的库函数,库函数的使用必须要包含一个头文件                         
	return 0;                //结束函数,返回
}

三、基本构成分类详细介绍
   

(1)关键字

常用关键字
关键字作用
int  声明整型变量
double声明双精度变量
long 声明长整型变量
char声明字符变量
float  声明浮点型变量
short 声明短整形变量
signed声明有符号类型变量
unsigned声明无符号类型变量
struct声明结构体变量;结构体所占内存大小是其成员所占内存之和
enum声明枚举类型变量
union声明联合数据类型变量
static声明静态变量;最名不符实的关键字
switch 用于开关变量
case用于语句分支
default 开关语句中的其他分支
break跳出当前循环;表示终止本层循环
continue结束当前循环,开始下一轮循环
register声明寄存器变量;最快的关键字
const声明只读变量,其修饰的只读变量必须在定义的同时初始化
volatile说明变量在出现执行中可被隐含地改变 ;最易变的关键字
typedef 用以给数据类型取名
extern声明变量是在其他文件中声明;最会带帽子的关键字
return子程序返回语句,用来终止一个函数并返回后面跟着的值
void声明函数无返回值或者无参数,声明空类型指针
do循环语句的循环体
while 循环语句的循环条件
for一种循环语句
if 条件语句
else条件语句否定分支
goto 无条件跳转语句
sizeof 计算对象所占内存空间大小
auto声明自动变量,缺省时编译器一般默认为auto;最宽宏大量的关键字

    

(2)数据类型

数据类型大小:

计算机中常用存储单位

单位说明
位(Bit)最小的存储单元,只能存储0或1。
字节(Byte)由8个位组成,是计算机中最基本的存储单位。
千字节(KB)约等于1024字节。
兆字节(MB)约等于1024千字节。
吉字节(GB)约等于1024兆字节。
特字节(TB)约等于1024吉字节。


求出他们的数据类型大小,我们需要用到C语言中的一个函数sizeof,这个函数的作用是可以求出⼀个对象(数据类型或者数据对象)的长度(即占⽤内存的⼤⼩,以byte为单位)。注意是以字节为单位。   
具体代码如下:

#include <stdio.h>
int main()
{
	printf("short:%d\n",sizeof(short));
	printf("unsgned short:%d\n", sizeof(unsigned short));
	printf("int:%d\n", sizeof(int));
	printf("unsigned int:%d\n", sizeof(unsigned int));
	printf("long:%d\n", sizeof(long));
	printf("unsigned long:%d\n", sizeof(unsigned long));
	printf("long long:%d\n", sizeof(long long));
	printf("unsigned long long:%d\n", sizeof(unsigned long long));
	printf("float:%d\n", sizeof(float));
	printf("double:%d\n", sizeof(double));
	printf("char:%d\n", sizeof(char));
 
	return 0;
}


 
   
    

 由运行结果可知:

char类型的数据类型大小为1字节即8位。

short类型的数据类型大小为2字节即16位。

int类型、float类型的数据类型大小为4字节即32位。

long类型、long long类型、double类型的数据类型大小为8字节即64位。

注意,若整数数据类型前面加unsigned即为无符号整数数据类型,数据类型大小不变。

需要注意的是long在32位系统中占用4个字节(32位),而在64位系统中占用8个字节(64位)。因此,可以说unsigned long的大小为4字节或8字节,具体取决于编译器和操作系统的规范。

数据类型的取值范围

数据类型取值范围
char-128 到 127
unsigned char0 到 255
short-32,768 到 32,767
unsigned short0 到 65,535
int-2,147,483,648 到 2,147,483,647
unsigned int0 到 4,294,967,295
long-2,147,483,648 到 2,147,483,647
unsigned long0 到 4,294,967,295
long long-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long long0 到 18,446,744,073,709,551,615
float

精度约为6到7十进制位

double

精度约为15位十进制数

打印输入类型

数据类型打印类型
short%hd
int%d
long%ld
long long%lld
float%f
doule%lf
char%c

(3)常量和变量

常量:

常量是指在程序中固定不变的数值或字符,它们的值在程序运行过程中不能更改。常量可以分为字面常量和符号常量。

常量的分类:

  1. 字面常量:字面常量是指直接写在代码中的常量值。例如,整数常量10、浮点数常量3.14、字符常量'a'等都是字面常量。

  2. 符号常量:符号常量是使用#defineconst关键字定义的常量。它们在程序中表示一个固定的数值或字符串,并且可以在程序中多次使用。

  3. 枚举常量:是指一组具有相同特性的常量集合,在C语言中通过使用enum关键字进行定义。枚举常量可以用于定义一组相关的常量,使程序更加清晰和易读。每个枚举常量都有一个唯一的名称和与之对应的值,默认情况下从0开始递增。我们可以自定义枚举常量的值或顺序。

对各种常量代码的演示:

int main()
{
	120;//字面常量
	10;//字面常量
 
	//const 修饰常变量
	const int num = 10;//num是const修饰的常变量
	//num的值不可被改变,但本质还是一个变量
 
	//#define的标识符常量 
    #define MIN 100
	printf(" = %d\n", MIN);
 
	//枚举常量
	printf("%d\n", MALE);
	printf("%d\n", FEMALE);
	return 0;
	
}

变量: 

变量是在程序执行过程中可以改变其值的一种标识符。变量可以用来存储和表示不同类型的数据,包括整数、浮点数、字符、布尔值等。变量在使用前需要先声明,并且可以通过赋值语句来改变其值。在C语言中,变量的声明需要指定变量的类型和名称。

变量的分类:

分为局部变量和全局变量。

它们的区别:

局部变量的作用域是变量所在的局部范围,它的生命周期是进入作用域生命周期开始,出作用域生命周期结束。

全局变量的作用域是整个工程,它的生命周期是整个程序的生命周期。

定义变量的方法如下:

int x;             // 声明一个整数类型的变量x
float pi = 3.14;   // 声明并初始化一个浮点数类型的变量pi
char ch = 'A';     // 声明并初始化一个字符类型的变量ch

变量的命名需要符合一定的规则,包括以字母或下划线开头、由字母、数字和下划线组成等。

变量和常量在程序中都具有一定的作用,常量用于表示固定的数值或字符串,而变量用于存储和处理数据。在程序设计中,常量和变量的使用是非常重要的基础概念。


总结

       本篇文章详细地讲了C语言的详细入门基础知识,希望能够帮到大家!

      以后还会给大家展现更多关于C语言的其他重要的基础知识,感谢大家支持懒大王!

      希望这篇博客能给各位朋友们带来帮助,最后懒大王请来过的朋友们留下你们宝贵的三连以及关注,感谢你们!
 

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

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

相关文章

搭建ELK+Filebead+zookeeper+kafka实验

一、ELKFilebeadzookeeperkafka架构 第一层&#xff1a;数据采集层&#xff08;Filebeat&#xff09; 数据采集层位于最左边的业务服务集群上&#xff0c;在每个业务服务器上面安装了filebead做日志收集&#xff0c;然后把采集到的原始日志发送到kafkazookeeper集群上。 第二…

文件拷贝【 使用字节流完成文件的复制(支持一切文件类型的复制)】

需求&#xff1a; 把某个视频复制到 E:\\videocopy\\new.mp4 思路&#xff1a; 根据 数据源 创建字节输入流对象根据 目的地 创建字节输出流对象读写数据&#xff0c;复制视频释放资源 可以拷贝 视频 &#xff0c;图片 &#xff0c;文本.txt 等文件 package com.csdn.d2_byte_…

Linux grep命令

①grep命令——过滤文件 这是txt.txt的内容 通过grep管道符查找gcc内容在txt.txt文件中 查找gcc所处行位置&#xff0c;加上-n 查找有多个相同内容的数据 ②wc命令——数量统计 统计数据如图&#xff1a; ③管道符——左边结果作为右边输入 如下图所示统计txt.txt文件"-&…

连续性数据进行Meta荟萃分析

Meta荟萃分析&#xff08;也称Meta分析&#xff0c;元分析&#xff0c;异质性分析等&#xff09;&#xff0c;其是一种综合各种文献结论&#xff0c;进而汇总综合评价的方法&#xff0c;Meta分析常用于医学、心理学、教育学、生态学等专业领域。通俗地看&#xff0c;Meta分析是…

物 理 层

二、物理层 1、物理层的基本概念 物理层的作用:尽可能的屏蔽掉传输媒体和通信手段的差异&#xff0c;使物理层上面的数据链路层感觉不到这些差异&#xff0c;使其只需要考虑如何完成本层的协议和服务 1.1、物理层的主要任务 机械特性&#xff1a;指明接口所用的接线器的形状…

【计算机视觉】1. 计算机视觉基础理论知识和框架(Basic Concepts)

什么是计算机视觉? 一、什么是计算机视觉二、二个研究维度三、研究挑战3.1 像素与语义之间的GAP3.2 视觉变化3.3 光照变化3.4 尺度变化3.5 形态变化3.6 背景复杂3.7 遮挡3.8 内外 四、计算机视觉框架4.1 计算机视觉基础4.2 深度学习算法理论基础4.3 深度学习算法 五、计算机视…

SpringBoot3与IDE中配置JDK17

概述 SpringBoot3需要JDK17的支持&#xff0c;不再支持JDK8。 如果要运行SpringBoot3的项目&#xff0c;根据使用的IDE&#xff0c;需要的配置不同。 配置说明 1. SpringToolSuite4 如果使用的是SpringToolSuite4&#xff08;STS&#xff09;&#xff0c;比较简单&#xf…

接入网技术

接入网 接入网是指骨干网络到用户或企业之间的所有设备。其长度一般为几百米到几公里,因而形象地被称为“最后一公里”。接入网地接入方式包括铜线(普通电话线)接入、基于双绞线的ADSL技术、基于HFC网(光纤和同轴电缆(有线电视电缆)混合网)的Cable Modem技术、光纤接入…

「聊设计模式」之职责链模式(Chain of Responsibility)

&#x1f3c6;本文收录于《聊设计模式》专栏&#xff0c;专门攻坚指数级提升&#xff0c;助你一臂之力&#xff0c;带你早日登顶&#x1f680;&#xff0c;欢迎持续关注&&收藏&&订阅&#xff01; 前言 设计模式是解决软件开发中常见问题的可复用解决方案。其中…

一篇文章教你Pytest快速入门和基础讲解,一定要看!

前言 目前有两种纯测试的测试框架&#xff0c;pytest和unittestunittest应该是广为人知&#xff0c;而且也是老框架了&#xff0c;很多人都用来做自动化&#xff0c;无论是UI还是接口pytest是基于unittest开发的另一款更高级更好用的单元测试框架出去面试也好&#xff0c;跟别…

爬虫工作者必备:使用爬虫ip轻松获得最强辅助

在进行网络数据爬取时&#xff0c;爬虫ip成为了爬虫工作者们的得力辅助。通过使用爬虫ip&#xff0c;可以实现IP地址的伪装和分布式请求&#xff0c;有效规避访问限制和提高爬取效率。本文将为爬虫工作者们分享关于使用爬虫ip的知识&#xff0c;帮助您轻松获取最强辅助&#xf…

【JavaEE】多线程案例-单例模式

文章目录 1. 前言2. 什么是单例模式3. 如何实现单例模式3.1 饿汉模式3.2 懒汉模式4. 解决单例模式中遇到的线程安全问题4.1 加锁4.2 加上一个判断解决频繁加锁问题4.2 解决因指令重排序造成的线程不安全问题 1. 前言 单例模式是我们面试中最常考到的设计模式。什么是设计模式呢…

Linux 用户注意!GNOME 45 将影响所有扩展!

GNOME 45 是一次重要的升级&#xff0c;但对扩展的影响并不令人满意&#xff01; 每当 GNOME 升级&#xff0c;总会有一些扩展遭遇问题&#xff0c;这点并不新鲜。但如今&#xff0c;到了 GNOME 45&#xff0c;每个扩展都将面临问题&#xff01; 那么&#xff0c;究竟是什么原…

Lua学习笔记:探究package

前言 本篇在讲什么 理解Lua的package 本篇需要什么 对Lua语法有简单认知 对C语法有简单认知 依赖Visual Studio工具 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手 提供全流程的源码内容 ★提高阅读体验★ &#x1f449; ♠ 一级…

怒刷LeetCode的第8天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;双指针和排序 ​编辑第二题 题目来源 题目内容 解决方法 方法一&#xff1a;双指针 方法二&#xff1a;递归 方法三&#xff1a;快慢指针 方法四&#xff1a;栈 第三题 题目来源 题目内容 解决方法…

Python实现查询一个文件中的pdf文件中的关键字

要求&#xff0c;查询一个文件中的pdf文件中的关键字&#xff0c;输出关键字所在PDF文件的文件名及对应的页数。 import os import PyPDF2def search_pdf_files(folder_path, keywords):# 初始化结果字典&#xff0c;以关键字为键&#xff0c;值为包含关键字的页面和文件名列表…

数据分析三剑客之一:Pandas详解

目录 1 Pandas介绍 2 Pandas的安装与导入 2.1 Pandas模块安装 2.2 Pandas模块导入 3 pandas数据结构及函数 3.1 Series结构 3.1.1 ndarray创建Series对象 3.1.2 dict创建Series对象 3.1.3 标量创建Series对象 3.1.4 位置索引访问Series数据 3.1.5 标签索引访问Series…

华为云HECS安装docker

1、运行安装指令 yum install docker都选择y&#xff0c;直到安装成功 2、查看是否安装成功 运行版本查看指令&#xff0c;显示docker版本&#xff0c;证明安装成功 docker --version 或者 docker -v 3、启用并运行docker 3.1启用docker 指令 systemctl enable docker …

【Linux基础】第七章:搜索查找-find查找文件或者目录

find命令是根据文件属性进行查找的&#xff0c;如文件名&#xff0c;文件大小&#xff0c;所有者&#xff0c;所有组&#xff0c;是否为空&#xff0c;访问时间&#xff0c;修改时间等。 基本格式&#xff1a; find path [options] 先定位到etc 目录下 cd /etc1.按照文件名查找…