零基础入门学习C语言
来自江南的你
这个作者很懒,什么都没留下…
展开
-
零基础入门学习C语言009讲:指针(7)
有关指针的数据类型的小结 定义 含义 int i; 定义整型变量i int *p; p为指向整型数据的指针变量 int a[n]; 定义整型数组a,它有n个元素 int *p[n]; 定义指针数组p,...原创 2019-05-01 14:47:39 · 505 阅读 · 0 评论 -
零基础入门学习C语言008讲:函数(3)
8.5 函数的嵌套调用嵌套定义就是在定义一个函数时,其函数体内又包含另一个函数的完整定义。然而,C语言不能嵌套定义函数,但可以嵌套调用函数,也就是说,在调用一个函数的过程中,又调用另一个函数。例题 计算s = 2²! + 3²!(“!” 在高等数学里是阶乘的意思,4!= 4 * 3 * 2 * 1)思路:本题可编写两个函数,一个是用来计算平方值的函数square,另...原创 2019-04-30 11:32:51 · 310 阅读 · 0 评论 -
零基础入门学习C语言008讲:函数(2)
8.4 函数的调用8.4.1 函数调用的一般形式函数调用的一般形式为: 函数名(实参表列)如果是调用无参函数,则“实参表列”可以没有,但括弧不能省略。如果实参表列包含多个实参,则各参数间用逗号隔开。实参与形参的个数应相等,类型应匹配。实参与形参按顺序对应,一一传递数据。如果实参表列包括多个实参,对实参求值的顺序并不是确定的,有的系统按自左至右顺序求实参的值,有的系统则按自右至左...原创 2019-04-30 10:17:56 · 374 阅读 · 1 评论 -
零基础入门学习C语言008讲:函数(1)
8.1 概述一个较大的程序可分为若干个程序模块,每一个模块用来实现一个特定的功能。在高级语言中用子程序实现模块的功能。子程序由函数来完成。一个C程序可由一个主函数和若干个其他函数构成。函数间的调用关系由主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。例8.1先举一个函数调用的简单例子# include <stdio.h...原创 2019-04-30 08:47:27 · 774 阅读 · 0 评论 -
零基础入门学习C语言007讲:数组(3)
二维数组程序举例---二分法举例例 假设在数组a中的数据是按由小到大顺序排列的:-12 0 6 16 23 56 80 100 110 115,从键盘上输入一个数,判定该数是否在数组中,若在,输出所在序号。第一步:设low、mid和high三个变量,分别指示数列中的起始元素、中间元素与最后一个元素位置, 其初始值为low=0,high=9,mid=4,判断mid...原创 2019-04-30 08:46:06 · 1332 阅读 · 0 评论 -
零基础入门学习C语言007讲:数组(2)
二维数组的定义和引用二维数组的定义二维数组定义的一般形式为类型说明符 数组名 [常量表达式] [常量表达式];例如:定义a为3*4(3行4列)的数组,b为5*10(5行10列)的数组。如下:float a [3][4], b [5][10];不能写成 float a [3,4], b [5,10];例如:int a[3][4];说明了一个三行四列的数组,...原创 2019-04-30 08:42:17 · 686 阅读 · 0 评论 -
零基础入门学习C语言007讲:数组(1)
数组的概念有如下几组数据,它们分别该如何存储呢?• 学生的学习成绩• 银行的账单• 一行文字这些个数据的特点是:1、具有相同的数据类型2、使用过程中需要保留原始数据 C语言为这些数据,提供了一种构造数据类型:数组。我们来看一下书本的定义: ==>>在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据...原创 2019-04-29 19:16:28 · 836 阅读 · 0 评论 -
零基础入门学习C语言006讲:循环结构(2)
循环的嵌套【例6.7】#include "stdio.h"void main(){ int i, j, k; printf("i j k\n"); for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) { for (k = 0; k < 2; k++) { printf("%d %...原创 2019-04-29 17:59:24 · 1028 阅读 · 0 评论 -
零基础入门学习C语言006讲:循环结构(1)
概述•什么是循环?•为什么要使用循环?循环结构是程序中一种很重要的结构。其特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。C语言提供了多种循环语句,可以组成各种不同形式的循环结构。1) 用goto语句和if语句构成循环;2) 用while语句;3) 用d...原创 2019-04-29 15:12:23 · 290 阅读 · 0 评论 -
零基础入门学习C语言005讲:分支程序设计(3)
条件运算符和条件表达式条件运算符为“?和:”,它是一个三目运算符,即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为: 表达式1? 表达式2: 表达式3其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。条件表达式通常用于赋值语句之中。例如条件语句: if(a>b) max=...原创 2019-04-29 14:26:44 · 301 阅读 · 0 评论 -
零基础入门学习C语言008讲:函数(4)
8.7数组作为函数参数数组可以作为函数的参数使用,进行数据传送。数组用作函数参数有两种形式。一种是把数组元素(下标变量)作为实参使用;另一种是把数组名作为函数的形参和实参使用。8.7.1 数组元素作函数实参数组元素就是下标变量,它与普通变量并无区别。因此它作为函数实参使用与普通变量是完全相同的,在发生函数调用时,把作为实参的数组元素的值传送给形参,实现单向的值传送。例题训练...原创 2019-04-30 21:01:13 · 796 阅读 · 0 评论 -
零基础入门学习C语言008讲:函数(5)
8.8局部变量和全局变量8.8.1局部变量在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的。这称为“局部变量”。 不懂?看以下示例:有几点要说明(1) 主函数中定义的变量(m,n)也只在主函数中有效,而不因为在主函数中定义而在整个文件或程序中有效。主函数也不能使用其他函数中定义的变量。(2)...原创 2019-04-30 21:44:27 · 533 阅读 · 0 评论 -
零基础入门学习C语言009讲:指针(6)
指向函数的指针用函数指针变量调用函数可以用指针变量指向整型变量、字符串、数组,也可以指向一个函数。一个函数在编译时被分配给一个入口地址。这个函数的入口地址就称为函数的指针。 /****************************//* 比较a 和 b的大小,求大值 *//****************************/#include <stdio.h&g...原创 2019-05-01 14:31:25 · 399 阅读 · 0 评论 -
零基础入门学习C语言009讲:指针(5)
今天我们继续来学习字符指针作函数参数的用法,首先,在上一个博客里,有一个小问题,不知道大家找到答案没?#include <stdio.h> void main(){ void copy_string(char *from, char *to); char *a = "I am a teacher."; char *b = "You are a student."...原创 2019-05-01 13:21:39 · 285 阅读 · 0 评论 -
Visual studio 2013/2015/2017 scanf 不安全 使用 scanf_s 解决方法
VS的SDL选项是编译器在源代码层次尽最大可能减少安全漏洞的数量和严重性,比如scanf这样的函数在目前看来就是不安全的,可能会溢出导致崩溃,打开这个选项,那么这类函数将视为错误,以前的版本默认是关闭SDL选项的,在学习阶段关闭SDL会少很多限制解决方案如下:方案一:在建立项目时把安全开发生命周期前面的对号去掉:方案二:已经建立好的项目在可以在项目属性里关闭SDL:右击项...原创 2019-05-06 15:36:59 · 2552 阅读 · 0 评论 -
零基础入门学习C语言009讲:指针(4)
字符串与指针(1) 用字符数组存放一个字符串,然后输出该字符串。例题一:定义一个字符数组,对它初始化,然后输出该字符串。 #include <stdio.h>void main(){ char string[] = "I love https://www.csdn.net/!"; printf("%s\n", string);}(注:\0 是字...原创 2019-05-01 11:02:13 · 240 阅读 · 0 评论 -
C/C++ 五大内存分区
在C/C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,...原创 2019-05-01 11:01:16 · 1484 阅读 · 0 评论 -
零基础入门学习C语言009讲:指针(3)
多维数组与指针用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。但在概念上和使用上,多维数组的指针比一维数组的指针要复杂一些。 多维数组元素的地址先回顾一下多维数组的性质,可以认为二维数组是“数组的数组”,例 :定义int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};则二维数组a是由3个一维数组所组成的。设二维...原创 2019-05-01 10:38:24 · 310 阅读 · 0 评论 -
零基础入门学习C语言009讲:指针(2)
数组与指针一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。所谓数组元素的指针就是数组元素的地址。 指向数组元素的指针定义一个指向数组元素的指针变量的方法,与以前介绍的指向变量的指针变量相同。例如:int a[10];(定义a为包含10...原创 2019-05-01 10:19:02 · 652 阅读 · 0 评论 -
零基础入门学习C语言009讲:指针(1)
指针啥玩意?似乎很神秘?指针是C语言中的一个重要的概念,也是C语言的一个重要特色。正确而灵活地运用它,可以有效地表示复杂的数据结构;能动态分配内存;能方便地使用字符串;有效而方便地使用数组……掌握指针的应用,可以使程序简洁、紧凑、高效。可以说,不掌握指针就是没有掌握C的精华。地址和指针的概念为了说清楚什么是指针,必须弄清楚数据在内存中是如何存储的,又是如何读取的。 内存区的...原创 2019-04-30 23:35:57 · 412 阅读 · 0 评论 -
零基础入门学习C语言008讲:函数(6)
进阶:在多文件的程序中声明外部变量在前面的课程中,我们见过的所有的程序都是在一个C程序文件中实现的,但是,我们在开发中遇到的各种各样的程序,很多都是由多个程序文件组成的,每个文件基本上就是实现了程序的部分功能,然后再把各个功能凑合起来,所以,我们现在要学着把一个文件拆成多个文件。这是我们第一次把一个程序拆成多个文件!请看实战演练:file1.c(文件1)#include &l...原创 2019-04-30 23:00:05 · 280 阅读 · 0 评论 -
零基础入门学习C语言005讲:分支程序设计(2)
if语句用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。if语句的三种形式……第一种形式为基本形式: if(表达式) 语句其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。其过程可表示为下图。【例5.3】#include "stdio.h"void main(){ ...原创 2019-04-29 13:47:30 · 639 阅读 · 0 评论 -
零基础入门学习C语言005讲:分支程序设计(1)
关系运算符和表达式关系运算符:在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。复习运算符的优先次序……关系运算符及其优先次序在C语言中有以下关系运算符:1) < 小于2) <= 小于或等于 3) > 大于4) >= 大于或等于5)...原创 2019-04-29 12:00:35 · 207 阅读 · 0 评论 -
零基础入门学习C语言011讲:结构体与共用体(7)枚举类型
枚举类型在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。枚举变量的声明设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:enum weekday{ sun,mou,tue,we...原创 2019-05-02 16:22:33 · 381 阅读 · 0 评论 -
零基础入门学习C语言011讲:结构体与共用体(6)共用体
共用体共用体的概念 :使几个不同的变量共占同一段内存的结构称为 “共用体”类型的结构。定义共用体类型变量的一般形式为:union 共用体名{ 成员表列 }变量表列;union data{ int i; char ch; float f;} a, b, c;或者:union data{ int i; ch...原创 2019-05-02 16:12:11 · 604 阅读 · 0 评论 -
零基础入门学习C语言011讲:结构体与共用体(5)链表的删除与插入
对链表的删除操作从一个动态链表中删去一个结点,并不是真正从内存中把它抹掉,而是把它从链表中分离开来,只要撤销原来的链接关系即可。随堂练习题目:写一函数以删除动态链表中指定的结点。解题思路:一、从p指向的第一个结点开始,检查该结点中的num值是否等于输入的要求删除的那个学号。二、如果相等就将该结点删除,如不相等,就将p后移一个结点,再如此进行下去,直到遇到表尾为止。三...原创 2019-05-02 16:03:25 · 369 阅读 · 0 评论 -
零基础入门学习C语言011讲:结构体与共用体(4)链表
链 表什么是链表?链表是一种常见的重要的数据结构,是动态地进行存储分配的一种结构。链表的组成:头指针:存放一个地址,该地址指向第一个元素 结点:用户需要的实际数据和链接节点的指针我们尝试根据下图建立链表:#include <stdio.h>struct student{ long num; float score; struct stu...原创 2019-05-02 15:18:05 · 373 阅读 · 0 评论 -
零基础入门学习C语言011讲:结构体与共用体(3)
结构指针变量作函数参数将一个结构体变量的值传递给另一个函数,有3个方法:(1)用结构体变量的成员作参数(2)用结构体变量作实参(3)用指向结构体变量(或数组)的指针作实参,将结构体变量(或数组)的地址传给形参实战例题例题:有一个结构体变量stu,内含学生学号、姓名和3门课程的成绩。通过调用函数print中将它们输出要求:先用结构体变量作函数参数:#inclu...原创 2019-05-02 10:56:55 · 288 阅读 · 0 评论 -
零基础入门学习C语言011讲:结构体与共用体(2)
结构体变量的初始化我们可以这么对结构体进行初始化!#include <stdio.h>void main(){ struct student /*定义结构*/ { int num; char *name; char sex; float score; }boy1, boy2 = { 102, "Jane", 'M', 98.5 }; //结...原创 2019-05-02 09:27:47 · 466 阅读 · 0 评论 -
零基础入门学习C语言011讲:结构体与共用体(1)
概述问题定义:有时需要将不同类型的数据组合成一个有机的整体,以便于引用。如:一个学生有学号/姓名/性别/年龄/地址等属性 int num; char name[20]; char sex; int age; int char addr[30]; num name sex age a...原创 2019-05-02 09:12:24 · 370 阅读 · 0 评论 -
零基础入门学习C语言010讲:预处理(3)
文件包含尽管我们很熟悉,但对文件包含命令还要说明以下几点:1. 一个include命令只能指定一个被包含文件,若有多个文件要包含,则需用多个include命令。2. 文件包含允许嵌套,即在一个被包含的文件中又可以包含另一个文件。3. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来。例如以下写法都是允许的:#include"stdio.h"#include<...原创 2019-05-01 21:30:14 · 392 阅读 · 0 评论 -
零基础入门学习C语言010讲:预处理(2)
带参宏定义C语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。带参宏定义的一般形式为: #define 宏名(形参表) 字符串带参宏调用的一般形式为:宏名(实参表); 例如: #define M(y) y*y+3*y /*宏定义*/...原创 2019-05-01 21:15:04 · 263 阅读 · 0 评论 -
零基础入门学习C语言011讲:结构体与共用体(8)typedef
用typedef定义类型用typedef声明新的类型名来代替已有的类型名声明INTEGER为整型typedef int INTEGER#include <stdio.h>typedef int INTEGER;void main(){ INTEGER i = 1; int j = 2; printf("%d, %d\n\n", i, j);...原创 2019-05-02 16:32:03 · 445 阅读 · 0 评论 -
零基础入门学习C语言012讲:文件操作(1)
C文件概述所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称,叫做文件名。实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的,在使用时才调入内存中来。从不同的角度可对文件作不同的分类。从用户的角度看,文件可分为普通文件和设备文件两种。操作系统是以文件为单位对数据进行管理的。文...原创 2019-05-02 20:47:59 · 627 阅读 · 0 评论 -
零基础入门学习C语言004讲:顺序程序设计(2)
格式输入scanf函数(格式输入函数)scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。1. scanf函数的一般形式scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中,与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。scanf函数的一般形式为: scanf(“格式控...原创 2019-04-29 10:46:54 · 261 阅读 · 0 评论 -
零基础入门学习C语言004讲:顺序程序设计(1)
介绍从程序流程的角度来看,程序可以分为三种基本结构,即顺序结构、分支结构、循环结构。这三种基本结构可以组成所有的各种复杂程序。C语言提供了多种语句来实现这些程序结构。本章介绍这些基本语句及其在顺序结构中的应用,使读者对C程序有一个初步的认识,为后面各章的学习打下基础。C程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。C语句可分为以下五类:1) 表达式语...原创 2019-04-29 10:18:00 · 348 阅读 · 0 评论 -
零基础入门学习C语言003讲:运算符和表达式
1.算术运算符和算术表达式基本的算术运算符•加法运算符“+”:加法运算符为双目运算符,即应有两个量参与加法运算。如a+b, 4+8等。具有右结合性。•减法运算符“-”:减法运算符为双目运算符。但“-”也可作负值运算符,此时为单目运算,如-x, -5等具有左结合性。•乘法运算符“*”:双目运算,具有左结合性。•除法运算符“/”:双目运算具有左结合性。参与运算量均为整型时,结果也为...原创 2019-04-29 09:34:04 · 312 阅读 · 0 评论 -
零基础入门学习C语言002讲:数据类型(3)
9.变量赋初值在程序中常常需要对变量赋初值,以便使用变量。语言程序中可有多种方法为变量提供初值。本小节先介绍在作变量定义的同时给变量赋以初值的方法。这种方法称为初始化。在变量定义中赋初值的一般形式为: 类型说明符 变量1= 值1,变量2= 值2,……;例如: int a=3; int b,c=5; float x=3.2,y=3f,z=0.75;...原创 2019-04-28 22:00:15 · 284 阅读 · 0 评论 -
零基础入门学习C语言002讲:数据类型(2)
7. 字符型数据字符型数据包括字符常量和字符变量。1)字符常量字符常量是用单引号括起来的一个字符。例如:'a'、'b'、'='、'+'、'?'都是合法字符常量。在C语言中,字符常量有以下特点:1) 字符常量只能用单引号括起来,不能用双引号或其它括号。2) 字符常量只能是单个字符,不能是字符串。3) 字符可以是字符集中任意字符。但数字被定义为字符型之后就不能...原创 2019-04-28 21:59:08 · 382 阅读 · 0 评论 -
零基础入门学习C语言002讲:数据类型(1)
1. 数据类型概述1. 基本数据类型:基本数据类型最主要的特点是,其值不可以再分解为其它类型。也就是说,基本数据类型是自我说明的。2. 构造数据类型:构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。在C语言中,构造类型有以下几种: ·数组类型...原创 2019-04-28 21:58:14 · 369 阅读 · 0 评论