c语言

C语言数据类型

馋奶兔 提交于 2020-03-16 09:07:33
目录 一、基本类型 1、字符型(char) 2、整型(int) 3、浮点型(float) 二、字符串 三、构造类型 四、指针类型 五、其它数据类型 六、版权声明 一、基本类型 C语言的基本数据类型包括字符型、整数型、浮点型。 1、字符型(char) 描述单个字符(一个字节),用半角的单引号包含起来,如'a'、'A'、'1'、'$'等,键盘能输入的英文和半角的符号都是字符。 'A' 'B' 'C' ...... 'Z' 'a' 'b' 'c' ...... 'z' '0' '1' '2' ...... '9' '~' '!' '@' ...... '+' 中文的汉字和标点符号是两个字节(GBK编码),不能算一个字符,以下都是非法的。 '好' '。' ',' '¥' 2、整型(int) 描述整数,整数在计算机上是准确表示的,如123、500、0、-10等。 123 500 0 -10 3、浮点型(float) 描述实数,有小数位,如10.0、123.55、3459.98、-50.3,实数在计算机上一般是近似表示的。 10.0 123.55 345.98 -50.3 二、字符串 描述多个字符,用半角的双引号包含起来,可以是英文、数字、中文、标点符号,半角全角的都可以。 "a" "" "西施" "我心匪石,不可转也。我心匪席,不可卷也。威仪棣棣,不可选也。" "我有100块钱。"

C语言程序的基本结构

不想你离开。 提交于 2020-03-16 09:06:02
目录 一、C语言基础知识的学习方法 二、C语言程序开发的流程 三、安装C语言的编译器 四、C程序的基本结构 1、程序的注释 2、预处理指令 3、主函数的入口 4、主函数体 五、编译并执行 C 程序 六、知识总结 七、课后作业 八、版权声明 一、C语言基础知识的学习方法 1)我的课程内容是精心整理的,某些知识点可能没有提到应用场景,但绝对不会是没用的知识。课程中没有提到的知识可以了解一下,但不必深入学习,意义不大。 2)学习不要贪快,欲速则不达的道理大家应该明白,学习的重点是培养写程序的感觉。 3)不要记笔记,不要记关键字,不要记函数的参数,忘了就忘了,忘了是因为没有经过实战,所以,到了项目实战课程的时候,忘了内容很自然的会全部想起来。 4)不要用手机看视频,看着看着就想睡觉,学习的过程是边看边写,没有看出来的程序员。赵括,知道不?就是那个空读兵书不成器的家伙,只看书看视频不写程序,和赵括没什么不同。 5)程序员的指法很重要,翘着二郎腿,嘴里叨着烟,挥舞一指禅,一副吊儿郎当的样子,是成不了程序员的。 6)学习的过程中遇到的问题,如果三十分钟解决不了,不要纠缠,在群里向大家请教。但是,反对遇到问题不经思考就提问的方式。 7)开始学习C语言之前,必须先熟悉Linux环境,掌握Linux常用命令和vi的基本用法。 8)高手都是从菜鸟开始的,只要您按视频教程一步一个脚印的学习

网络安全基础(社团课件)

南笙酒味 提交于 2020-03-16 09:03:03
*文章来源: https://blog.egsec.cn/archives/402 写在前面: 本片文章是写给社团中学习网络安全的同学的一点指导性文章,大家众所周知,我们学校并没有网络安全这门专业,所有的学习将是完全靠大家自学,社团建立网络安全战队就是为了力所能及的给大家提供最好的资源,帮助大家。本片文章内容只是我的个人观点,并不全面,本人也是一个刚入门的CTF练习生,所有的东西也是自学,并不全面,没有系统化学习过,更多资源还需靠自己查找。祝愿各位打算从事网安事业的同学加油!理论是枯燥的,但所有的实践需要理论去支撑! 对于刚刚涉足安全界的同学来说,在没有老师带领的情况下,在如何学习网络安全上充满了迷茫,网络安全是一个综合性学科,涉及领域非常广,常指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。 网络安全包含网络设备安全、网络信息安全、网络软件安全。从广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论都是网络安全的研究领域。网络安全是一门涉及计算机科学、网络技术、通信技术、密码技术、信息安全技术、应用数学、数论、信息论等多种学科的综合性学科。 这么多内容,对于一个刚入门的小白来说,刚开始摸不着头脑,所以,我根据自己的学习、工作以及实践经验列出了我的学习方法

c语言第三次作业

萝らか妹 提交于 2020-03-16 09:00:30
观看视频1.2.2,1.3.1,1.3.2 1、视频笔记 2、编写程序代码列表 3、存在的问题: (1)分不清scanf函数与gets函数的区别 解决方法:通过查阅课本,明白scanf函数不能读入空格或Tab,而gets函数可以。 (2).判断:语句 int *p 和 printf("%d",*p); 中的*p含义相同。(F) 解析:前者表示指针变量,后者表示指针变量储存的地址。 来源: https://www.cnblogs.com/jhy12/p/12501725.html

C语言数据结构-绪论

瘦欲@ 提交于 2020-03-16 06:29:37
目录 1.数据结构的起源 2.基本概念和术语 3.逻辑结构与物理结构 4.抽象数据类型 @(数据结构绪论) 1.数据结构的起源 ==数据结构==是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的关系和操作等相关问题的学科。 1968年,美国的高德纳(Donald E.Knuth)的《计算机程序设计艺术》第一卷《基本语法》中,较系统地阐述了数据的逻辑结构和存储结构及其操作,开创了数据结构的课程体系。同年(1968年),数据结构作为一门独立的课程,在计算机科学的学位课程中开始出现。 程序设计 = 数据结构 + 算法 2.基本概念和术语 ==数据==:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 数据不仅仅包括整型、实型等 数值类型 ,还包括字符及声音、图像、视频等 非数值类型 它是计算机程序加工的“原料”。例如,一个利用数值分析方法解代数方程的程序,其处理对象是整数和实数。一个编译程序或文字处理程序的处理对象是字符串。 数据,其实就是 符号 ,并且具备两个前提 可以输入到计算机中。 能被计算机程序处理。 数值类型可以进行数值计算。 字符类型需要进行非数值的处理。而声音、图像、视频等是通过编码的手段变成字符数据来处理的。 ==数据元素==:是组成数据的、有一定意义的 基本单位 ,在计算机中通常作为整体处理。也被称为 记录 。

C语言函数

可紊 提交于 2020-03-16 02:00:58
C语言函数 一、函数 C语言程序是由函数构成的,每个函数负责完成一部分的功能,函数将工恩呢该封装起来,以供程序调用。 二、函数定义 目的:将一些常用的功能封装起来,以供日后调用。 步骤:确定函数名,确定函数体,调用 格式:返回值类型 函数名(形式参数列表) { 函数体 } 三、函数调用 定义函数需要明确定的东西: ①. 取一个有意义的函数名 ②. 确定函数的形参 ③. 编写函数体 ④. 返回值 示例: Int average(int num1,int num2) { Return (num1+num2)/2; } int main() { Int a=1; Int b=3; Int c=average(a,b); //调用函数 Return 0; } 四、参数 ①. 形参:定义函数时,函数名后面的参数 如num1和num2 ②. 实参:调用函数时,传人的具体数据 如a和b ③. 形参和实参的个数必须相等 ④. 函数体内部不能定义和形参同名的变量 ⑤. 如果是基本的数据类型作为形参,则是纯粹的值传递,修改函数内部形参的值并不会影响到实参的值 ⑥. 一个函数可以没有形参,也可以有无限个形参 五、函数的返回值 (一)Return 的作用: ①. 退出函数 ②. 返回一个具体的值给函数的调用者 (二)返回值使用注意: ①. C语言是弱语法弱类型的语言,非常不严格 ②.

C语言中的字符串

馋奶兔 提交于 2020-03-15 23:45:44
1.字符串与字符数组 字符数组是一种数组,这中数组中的每个元素是一个字符型数据。 定义一个字符数组: char ch[5]; 对已定义的字符数组进行赋值: ch[0] = 'h'; ch[1] = 'e'; ch[2] = 'l'; ch[3] = 'l'; ch[4] = 'o'; 以上字符素组的存储为: 字符数组的初始化有两种方式: char ch[5] = {'h','e','l','l','o'}; 或者 char ch[] = {'h','e','l','l','o'}; 字符串与字符数组的区别在于,字符串在有效的字符后面添加一个结束标志‘\0’。 '\0'字符的ASCII码是0,系统在检测到该字符的时候就认为字符串已经结束了。 #include <stdio.h> int main(void) { char ch[] = {'h','e','l','l','o','\0'}; //字符串初始化 printf("%s\n", ch); ch[3] = '\0'; //将第4个元素改成结束符 printf("%s\n", ch); return 0; } 运行结果为: 上面的实例说明,printf()函数在打印字符串的时候并不检测字符数组的大小,而是检测需要打印的字符串是否有'\0'的结束标志。C语言中和字符串有关的库函数都是以遇到'\0'为字符串操作结束标志的。

C语言字符数组的初始化

可紊 提交于 2020-03-15 22:38:28
1、字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。 char str[ 10 ]={ 'I' , ' ' , 'a' , 'm' , ' ' ,‘h’, 'a' , 'p' , 'p' , 'y' }; 即把10个字符分别赋给str[0]到str[9]10个元素 如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0' )。 2、字符数组与字符串 在c 语言中, 将字符串作为字符数组来处理 。(c++中不是)在实际应用中人们关心的是有效字符串的长度而不是字符数组的长度,例如,定义一个字符数组长度为100,而实际有效字符只有40个,为了测定字符串的实际长度,C 语言规定了一个“ 字符串结束标志 ”,以字符' \0’ 代表。如果有一个字符串,其中第10个字符为'\0',则此字符串的有效字符为9个。也就是说,在遇到第一个字符'\0'时,表示字符串结束,由它前面的字符组成字符串。 系统对字符串常量也自动加一个'\0'作为结束符。例如"C Program”共有9个字符,但在内存中占10个字节,最后一个字节'\0'是系统自动加上的。(通过sizeof()函数可验证) 有了结束标志'\0'后,字符数组的长度就显得不那么重要了,在程序中往往依靠检测'\0

C语言字符串中的指针与数组

≡放荡痞女 提交于 2020-03-15 21:52:56
先说一下字符串字面量(字符串常量):双引号中的字符和编译器自动加入末尾的\0字符,都作为字符串储存在内存中。字符串常量属于静态存储类别,说明如果在函数中使用字符串常量,该字符串只会储存一次,在整个程序的生命周期内存在,即使函数被调用多次。用双引号扣起来的内容被视为指向该字符串储存位置的指针。 字符串的赋值可以用指针与数组,请看下面的例子 char str1[] = "I am a student"; const char *str2 = "I am a student too"; 以上两种表示方法还是有一些不同的 先说数组表示法,数组形式str1[]在计算机的内存中分配一个内含15个元素的数组(末尾还要加上空字符'\0'),当程序载入内存时,也载入了程序中的字符串,字符串存储在静态存储区中,但是当程序在开始时才会为该数组分配内存,此时才将字符串拷贝到数组中,注意此时字符串有两个副本,一个是静态存储区中的常量,另一个是存储在数组中的字符串。str1为首元素的地址(&str1[0]),是常量地址,不能更改,可以进行str1+1(&str1[1]),但是不允许str++这样的操作,因为递增运算符只能对变量名进行运算。 指针形式(*str2)也使得编译器为字符串在静态存储区预留19个元素空间,一旦开始执行程序,它会为指针变量str2流出一个储存位置,并把字符串的地址储存在指针变量中

c语言qsort的使用

孤街醉人 提交于 2020-03-15 20:41:47
目的 基于快速排序对数组进行排序,数组元素可以是结构体。 前提 qsort属于内置函数,需要包含头文件 stdlib.h 函数原型 void qsort( void *ptr, size_t count, size_t size,int (*comp)(const void *, const void *) ); /** void *ptr:空指针, 指向需要排序的数组 size_t count:数组元素个数,size_t在32位机器上unsigned int(4byte),64位机器上unsigned long(8byte) size:数组元素的字节数大小,通常用sizeof()来计算,平台不同,同一类型的变量占据的字节数可能不用,增强可移植性 int (*comp)(const void *, const void *) : 函数指针,将函数名作为参数,该函数的形参的类型均为const void *,函数外表是一样的,内容却有所不同,返回值类型相同 **/ 用户自定义函数 指明具体的比较对象 int cmp(const void *a, const void *b); // 自定义函数内容,若果a值大于b值,返回1, { /** 在函数内部将const void* 转换成实际的类型; **/ //默认升序写法 if ( *(MyType*)a < *(MyType*)b )