首页>>互联网 >>内容

c语言基础知识有什么用? c语言基础知识大全

发布时间:2023-03-16 13:09:52编辑:温柔的背包来源:

c语言基础知识有什么用? c语言基础知识大全

网上有很多关于c语言基础知识有什么用?的问题,也有很多人解答有关c语言基础知识大全的知识,今天每日小编为大家整理了关于这方面的知识,让我们一起来看下吧!

内容导航:

一、c语言基础知识有什么用?

二、学习C语言需要掌握哪些基本知识?

一、c语言基础知识有什么用?

C语言的主要用途是写应用软件和系统软件,也非常适合教学。

c语言是计算机编程的高级语言,但效率高,接近人类自然语言,所以受到程序员的青睐。C语言的另一个特点是接近计算机硬件,所以很多操作系统其实都是用C语言写的。学好C语言不仅对计算机编程有好处,也是很多高级语言的基础。即使你不是计算机专业的,学习C语言也是很有用的。目前大部分工程技术问题都需要计算机来解决,里面的计算主要是通过编程来实现的。C语言的效率是除了汇编语言之外的其他语言无法比拟的,汇编语言也不容易掌握,所以学习C语言是必然的。

二、学习C语言需要掌握哪些基本知识?

1.介绍程序

2.数据类型

数据类型:

1.基本数据类型:

1.1.整数:int 4字饥饿纤程匹配部分

1.2.字符类型:字符1字节

1.3.实数类型(浮点类型)

1.3.1.单精度类型:浮点4字节。

1.3.2.Double类型:双8字节。

2.结构类型:

2.1.枚举类型

2.2.数组类型

2.3.结构类型

2.4.共享主体类型

3.指针类型:

4.空类型:

3.打印格式语句

%d:十进制整数;

%c:单个字符;

%s:字符串;

%f:6位小数;

# include stdio . hint main(){ int age=18;浮动高度=1.85;char unit=' mPrintf('小明今年%d岁了'年龄);Printf('小明的身高%f%c '身高,单位);printf(‘小明现在在海量开放在线课程在线学习IT技术’);返回0;}学好c是加入大厂的敲门砖!如果我有这门课,我的C就不会这样了。

已经过期。

4.常数

其值不变的量成为常数;

定义一个字符常量(注意没有后面;)

# includes dio . h # Define pocket money 10//Define constant and constant value int main(){ printf('小明今天又得了%d元零花钱'零花钱);返回0;}5.操作员

5.1.算术运算符:-,*,/,%,-;/-之前,先计算,再取值。/-后,先取值,再计算;

5.2.赋值运算符:

5.3.关系运算符;

5.4.逻辑运算符;

5.5.三方运营商:

表情1?表情2:表情3;

6.水仙花数量的计算

输出所有三位数水仙花号。

所谓“水仙花数”是指一个三位数,其位数的立方和等于这个数。比如153是水仙号,153=111555333。

# includes dio . hint main(){//定义三位数num,个位数sd,十位数td,百位数hdint num,sd,td,HD;//循环所有三位数字以获得(num=100num1000Num ){//在三位数Num的第一百位上得到数字HD=num/100;//得到三位数num的第十位上的数TD=num/10;//获取三位数num位上的数sd=num//水仙花的数量有什么条件?if(num==HD * HD * HD TD * TD * TD SD * SD * SD){ printf('水仙花号:%d 'num);} }返回0;}7.打印正三角形*

#include stdio.hint main(){int i,j,k;for(I=1;i5;I ){/*观察每行的空格数,完成for(j=I;j5;j){ printf(');//输出空格}/*观察每行*的个数,完成循环条件*/for(k=0;k2 * I-1;k){ printf(' * ');//每行的* }printf(' ')输出;//}每次循环换行符返回0;) 8.臭名昭著的goto声明

很少使用

# include stdio . hint main(){ int sum=0;int I;for(I=1;i=10i ){printf('%d 'I);if(i==3){goto循环;//满足条件时执行goto语句} }//执行gotoLOOP:printf ('End of for loop . ');//请选择合适的位置添加标识符return 0;}9.形成参与和真正的争论

形参:形参是定义函数名和函数体时使用的参数,用来接收调用函数时传入的参数;

Argument: Argument是调用时传递的函数的参数。

函数的形参和实参具有以下特征:

形参只在被调用时分配内存单元,在调用结束时释放已分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回到主音函数后,参数变量就不能再用了。

参数可以是常量、变量、表达式、函数等。无论是哪种量,在进行函数调用时都必须有确定的值,以便将这些值传递给形参。所以要事先用赋值等方法,得到实参数的确定值。

传递参数时,实参和形参在数量、类型、顺序上要严格一致,否则会出现类型不匹配的错误。

10.注意函数的返回值

注意:void函数可以有执行代码块,但是不能有返回值。另外,如果void函数中有return语句,只能结束函数。其格式为:返回;

11.递归

# includes dio . hint getpeachnumber(int n)//在这里定义n,否则编译器会报错!{ int numif(n==10){ return 1;} else { num=(getPeachNumber(n ^ 1)1)* 2;printf("%d桃子剩余在第% d天",n,num);}返回num} int main(){ int num=getPeachNumber(1);Printf('猴子在第一天摘了%d个桃子。'num);返回0;}12.可变存储类别!

12.1.生命周期分割存储模式

根据变量的生命周期,C语言可以分为静态存储和动态存储。

静态存储模式:指程序运行时分配固定存储空间的模式。静态存储区存储的是整个程序执行过程中存在的变量,比如全局变量。

动态存储模式:指在程序运行过程中,根据需要动态分配存储空间的模式。存储在动态存储区的变量是根据程序运行的需要而建立和释放的,通常包括:函数参数;自动变量;调用函数时的现场保护和返回地址。

12.2.存储类型的分类

C语言中有四类存储:自动、静态、寄存器和外部。

由关键字auto定义的变量是自动变量,可以省略auto。如果没有写auto,则隐式定义为“自动存储类别”,属于动态存储模式。

用static修饰的是静态变量。如果它是在函数内部定义的,则称为静态局部变量。如果在函数之外定义,则称为静态外部变量。

注意:静态局部变量属于静态存储的范畴,分配在静态存储区的存储单元在程序整个运行期间不会被释放;静态局部变量在编译时被赋予初始值,也就是说,它们只被赋予一次初始值;如果在定义局部变量时没有赋值初始值,那么对于静态局部变量,初始值会在编译时自动赋值为0(对于数值变量)或空字符(对于字符变量)。

为了提高效率,C语言允许将局部变量的值放在CPU中的寄存器中,称为“寄存器变量”,用关键字register声明。

注意:只有局部自动变量和形参可以作为寄存器变量;计算机系统中寄存器的数量是有限的,所以不可能定义任何数量的寄存器变量。局部静态变量不能定义为寄存器变量。

用extern声明的变量是外部变量,外部变量的意义是函数可以调用在函数之后定义的变量。

#includ stdio.h//来源微信官方账号:C语言与CPP编程int main(){//定义外部局部变量extern int x;返回0;} int x=10013.内部函数外部函数!

C语言中不能被其他源文件调用的函数称为内部函数,内部函数由静态关键字定义,所以也称为静态函数,形式为:

静态[数据类型]函数名([参数])

这里的Static是对函数作用域的限制,只能在所在的源文件中使用,所以相同函数名的内部函数出现在不同的文件中是没有问题的。

在C语言中,可以被其他源文件调用的函数称为外部函数,它们由extern关键字以如下形式定义:

外部[数据类型]函数名([参数])

c语言规定,当没有指定函数的作用域时,系统会默认认为是外部函数,所以需要定义外部函数时也可以省略extern。可以省略Extern14.数组数组:具有固定大小和一致数据类型的连续内存空间。数组的声明:数据类型数组名称[长度n]

数据类型数组名称[长度n]={元素1,元素2,元素3,};

数据类型数组名称[]={元素1,元素2,元素3,};

数字类类型数组名[长度n];数组名[0]=元素1;数组名[1]=元素2;注:数组1、的下标都以0开头;2、初始化数组时,数组中元素的个数不能大于声明的数组长度。3、如果采用第一种初始化方法,且元素个数小于数组长度,则冗余数组元素初始化为0;4、数组声明后未初始化时,static和extern类型的数组元素初始化元素为0,auto类型的数组元素初始化值不确定。

15.数组遍历

# include stdio . hint main(){ int arr[]={ 0,1,2,3,4,5,6,7,8,9 };int I;for(I=0;i10i ){printf('%d 'arr[I]);}返回0;数组的冒泡排序

冒泡排序的思想:将相邻的元素相互比较,将较大的数字放在后面,直到所有的数字都排序完毕。

字符串和数组

在C语言中,没有办法直接定义substring的数据类型。您需要使用一个数组来定义所需的字符串,格式如下:

Char字符串名称[长度]='字符串内容'

char String name[length]={ ' String 1 '' String 2 ''字符串n '' \ 0 ' };

注意:

[]中的长度可以省略;

第二种方式,最后一个元素必须是' \0 '表示结束;

第二种方式不会写中文!输出字符串时,使用:printf('%s '字符数组名);或puts(字符数组名);

16.串函数

Strlen(s):获取字符串的长度s;

Strcmp(s1,s2):比较字符串;比较时,字符串会被转换成ASCII码,然后进行比较。返回结果为0,表示s1和s2的ASCII码值相等;返回结果为1,表示s 1大于s2的ASCII码;而返回结果是-1,表示s1小于s2的ACSII码。

Strcpy(s1,s2):字符串的副本;S2将替换s1中的内容;

Strcat(s1,s2)在s1后面拼接S2;注意:s1的长度要够!

Atoi(s1)将字符串转换成整数!

17.多维数组

数据类型数组名称[常量表达式1].[常量表达式n];

多维数组的初始化和一维数组类似,有两种:

数据类型数组名称[常量表达式1][常量表达式2].[常量表达式n]={{值1,值n},{值1,值n},{值1,值n } }

数据类型数组名称[常量表达式1][常量表达式2].[常量表达式n];数组名[下标1][下标2].[下标n]=值;

多维数组初始化应注意以下事项:

当采用第一次初始化时,数组声明必须指定列的维度。因为系统会根据数组中的元素总数来分配空间,所以当元素总数和列的维数已知时,会直接计算出行程的维数;

使用第二次初始化时,数组声明必须指定行和列的维度。

18.多维数组的遍历

使用嵌套循环

注意:多维数组的每个一维下标不能越界!

结构

数组允许你定义可以存储相同类型数据项的变量。结构是C编程中另一种用户定义的可用数据类型,它允许您存储不同类型的数据项。

结构用于表示一条记录。假设您想要跟踪图书馆中图书的动态,您可能需要跟踪每本书的以下属性:

定义结构

为了定义结构,必须使用struct语句。struct语句定义了一个具有多个成员的新数据类型。struct语句的格式如下:

结构标记{成员列表成员列表成员列表.}变量-列表;标记是一个结构标记。

Member-list是标准的变量定义,比如int I;或者其他有效的变量定义。

变量列表结构变量定义在结构的末尾,在最后一个分号之前,可以指定一个或多个结构变量。以下是图书结构的申报方式:

struct Books { char title[50];char作者[50];char主题[100];int book _ id}书;在正常情况下,必须至少有两个标记,成员列表和变量列表部分。以下是一些例子:

//该语句声明了一个具有三个成员的结构,即一个整数A、一个字符B和一个双精度c//同时,它还声明了结构变量s1//该结构没有指明其标签struct { int A;char b;双c;} s1//此声明声明了一个具有三个成员的结构,即一个整数A、一个字符B和一个双精度c//。结构的标签命名为SIMPLE,变量struct SIMPLE { int a;char b;双c;};//在标记为SIMPLE的结构中,还声明了变量T1、T2、 T3 struct SIMPLE T1,T2 [20],* T3//还可以创建新的typedef typedef结构{ int a;char b;双c;} Simple2//现在可以用Simple2作为类型声明新的结构变量Simple2 u1,u2[20],* u3访问结构成员

为了访问一个结构的成员,我们使用成员访问操作符(。).成员访问操作符是结构变量名称和我们要访问的结构成员之间的句点。可以使用struct关键字定义结构类型的变量。下面的示例演示了结构的用法:

# includes dio . h # include string . h//来源微信官方账号:C语言与CPP编程结构书籍{ char title[50];char作者[50];char主题[100];int book _ id};int main(){ struct Books Book1;struct book book2;strcpy(Book1 . title,' c编程');strcpy( Book1.author,' Nuha Ali ');strcpy( Book1.subject,' C编程教程');Book1.book _ id=6495407strcopy(Book2 . title,'电信计费');strcpy( Book2.author,' Zara Ali ');strcpy( Book2.subject,'电信计费教程');Book2.book _ id=6495700printf ('book1title:% s 'Book1 . title);printf('第一本书作者:%s 'book1 . author);printf( 'Book 1 subject : %s 'book1 . subject);printf( 'Book 1 book_id : %d 'Book 1 . Book _ id);printf ('book2title:% s 'Book2 . title);printf('第二本书作者:%s 'book2 . author);printf( 'Book 2 subject : %s 'book2 . subject);printf( 'Book 2 book_id : %d 'Book 2 . Book _ id);返回0;}学好c是加入大厂的敲门砖!如果我有这门课,我的C就不会这样了。

已经过期。

20.公共机构

公共体是一种特殊的数据类型,允许您在同一内存位置存储不同的数据类型。您可以定义一个有多个成员的社区,但在任何时候都只能有一个成员有值。公共存储体提供了使用相同存储单元的有效方式。

# include stdio . h # include string . Hu nion Data { int I;浮动f;char string[20];};int main(){ union Data Data;printf('数据占用的内存大小:%d 'sizeof(data));返回0;}21.指针

# include stdio . hint main(){ int var=20;int * IP;IP=var;printf中存储var的地址(' var变量的地址:% p 'var);printf(' IP变量中存储的地址:% p 'IP);printf('值* IP变量:% d '* IP);返回0;}22.文件读写

写文件

# include stdio . hint main(){ FILE * FP=NULL;fp=fopen('/tmp/test.txt '' w ');fprintf(fp,'这是对fprintf的测试.');fput('这是对fput的测试.'FP);fclose(FP);}阅读文件

# include stdio . hint main(){ FILE * FP=NULL;char buff[255];fp=fopen('/tmp/test.txt '' r ');fscanf(fp,' %s 'buff);printf('1: %s 'buff);fgets(buff,255,(FILE *)FP);printf('2: %s 'buff);fgets(buff,255,(FILE *)FP);printf('3: %s 'buff);fclose(FP);}C语言和C学习路线

23.分类算法

十大经典排序算法(动态演示代码)

24.搜索算法

九种搜索算法

面试知识

C语言与C面试知识总结

26.字处理

字符串操作的全面总结

27.C语言通用标准库解读

C语言通用标准库解读

28.C语言中最常用的贪婪算法

C语言中最常用的贪婪算法就这样被攻克了。

29.常见的C语言记忆错误及对策

C语言中常见的内存错误及其对策

30.c语言实现了面向对象的原则。

c语言实现了面向对象的原则。

31.C语言/C内存管理

看完这篇文章还能看懂C语言/C内存管理吗?

32.再谈C语言指针

再来说说指针:大哥给你扫清C指针的云。

c语言函数指针的回调函数

C语言指针详解(文末福利)

33.c语言预处理命令

长文本详解:C语言预处理命令

34.C语言的高效编程和代码优化

C语言的高效编程和代码优化

35.c语言结构

C语言的结构就这样被攻克了!值得收藏!

36.原码,补码,补码详解

原码,补码,补码详解

37.c语言宏定义

浅谈C语言中宏定义的使用

38.C语言的社团联合、枚举和大小模式

C语言的并集、枚举和大小端模式。

以上就是关于c语言基础知识有什么用?的知识,后面我们会继续为大家整理关于c语言基础知识大全的知识,希望能够帮助到大家!