- 博客(23)
- 收藏
- 关注
原创 c++命名空间——namespace
如上面的“helloworld”程序,std是c++标准库的命名空间域,开头 using namespace std 的作用就是将标准库里面的内容都放到命名空间里面去。c++中,我们常常对不同的变量,函数,结构体,类和对象等进行命名,如果对于一个比较大的工程,频繁的命名不可避免的会发生命名冲突,为此,c++引入关键字namespace(命名空间),可以很好地控制标识符的作用域。原来,这里发生了命名冲突,在库中已经有以rand为名的函数,如果我们这时候在全局域再定义一个变量rand,就会发生命名冲突。
2022-11-21 13:16:30
328
1
原创 算法的时间复杂度和空间复杂度
空间复杂度看的是额外开辟的空间,冒泡排序中已知的数组不算,而新定义的变量end,exchange, i 三个才是 (细算的话swap里面的tmp也算),根据大o渐进表示法,冒泡排序的空间复杂度是O(1)。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。而一个算法的运行时间跟硬件配置有关系,所以同样一个算法是没办法算出准确时间的,为此引入大O渐进表示法。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。
2022-11-20 16:38:36
123
原创 实用C——如何利用C语言编写一个简易通讯录
目录通讯录介绍初步分析代码实现通讯录介绍我们每个人在手机里都有一个功能丰富的通讯录,里面不仅记录了亲人、朋友的一些基本信息:姓名,电话,住址等,我们还能对其进行操作,随时的删改联系人的信息。如今,我们就用学过的C语言知识来编写一个能储存1000个人信息(姓名、性别、年龄、电话、住址)的简易通讯录,并可以实现如下功能:1. 增加指定联系人2. 删除指定联系人3. 查找指定联系人4. 修改指定联系人5. 对通讯录就某一内容进行排序6. 打印目前通讯录储存的所有信
2022-05-12 02:03:39
607
原创 C语言常见的自定义数据类型(3)—— 联合体
联合体除了结构体和枚举,联合体也是C语言中常见的自定义类型,这种类型定义的变量同样包含一系列的成员,由于这些成员公用同一块空间,所以也叫共用体。区别于结构体的关键字:struct,枚举的关键字:enum,联合体(共用体)的关键字为 union 。如下面代码定义了一个联合体类型:#include<stdio.h>union Un{ char c; //1 int i; //4};int main(){ union Un u; printf("%d\n",size
2022-05-08 08:18:51
436
原创 C语言常见的自定义数据类型(2)—— 枚举
目录什么是枚举枚举类型的定义代码①:代码②:枚举的作用除了结构体,以下要介绍的枚举也是C语言常见的自定义结构体数据类型之一。什么是枚举枚举,顾名思义就是列举,即把可能的取值一一列举出来。在日常生活中如一周的星期一至星期日是有限的七天;性别有男、女两种;月份有12个月等,这些都是可以一一列举的,这个时候就可以利用枚举。枚举类型的定义利用枚举来定义一周七天://定义枚举类型enum Day{ Mon, Tues, Wed, Thur, Fri,
2022-05-06 23:15:32
495
原创 C语言常见的自定义数据类型(1)—— 结构体
在C语言中,常见的数据类型有整型int、浮点型float、字符类型char等,而仅仅用这些简单的数据类型来描述现实世界是远远不够的,如描述一本书时,要想通过定义一个变量涵盖这本书的名字,出版社,作者等信息,只用简单的数据类型是不能实现的,因此,C语言还规定了几个常见的自定义类型:结构体、枚举、联合体。1、结构体1.1 结构体的定义C语言中,可以使用结构体来实现存放一组不同类型的数据。结构体也可以认为是一些值的集合,这些值称为成员变量,结构体的每个成员可以是不同类型的变量。struct ta
2022-05-03 11:09:18
1309
原创 C语言必须要掌握的几个字符和字符串操作函数 (3)
除了字符和字符串操作函数之外,还有几个常见的内存操作函数:1、memcpy——实现不同类型情况下数据的拷贝之前介绍过strncpy函数是仅仅是用来拷贝字符串的,如果要拷贝的数据为整型、浮点型等类型,就可以用memcpy来实现。void *memcpy( void *dest, const void *src, size_t count );memcpy函数的第一个参数为目标空间的地址,第二个参数为源空间的地址,第三个参数为要拷贝的字节数。对比strncpy:char *st
2022-04-30 17:23:24
1009
原创 C语言必须要掌握的几个字符和字符串操作函数 (2)
一、字符操作函数:前面介绍的都是针对字符串的操作函数,除此之外,还有字符操作函数:字符分类函数:函数 参数符合下列条件就返回真 iscntrl 任何控制字符 isspace 空白字符:空格‘ ’,换页‘\f’,换行‘\n’,回车‘\r’,制表符‘\t’或者垂直制表符'\v' isdigit 十进制数字0-9 isxdigit 十六进制数字,包括所有十进制数字,小写字母a-f,大写字母A-F islower 小写字...
2022-04-29 16:44:01
118
原创 C语言必须要掌握的几个字符和字符串操作函数 (1)
C语言中对字符和字符串的操作很是频繁,C语言中本身是没有字符串类型的,但是其给我们提供了一系列的操作字符和字符串的库函数,下面来一一进行介绍。1、srelen——求字符串长度的函数strlen函数的功能即统计字符串中 \0 之前出现的字符串的个数,头文件为 #include<sting.h> 。#include<stdio.h>#include<sting.h>int main(){ char arr[]="abcdef"; int le...
2022-04-27 23:39:17
1178
原创 C语言基础——尝试用不同的方法求字符串长度
C语言本身有求字符串长度的库函数即 strlen()函数,可以统计一个字符串第一次出现'\0'时,'\0'之前的字符的个数。//利用库函数#include<stdio.h>#include<string.h>int main(){ char arr[]="sdafgfdjkg"; int ret=strlen(arr); printf("%d\n",ret); // 10return 0;}除了直接使用库函数,我们自己也可以编写一个函数来实现同样的功能:
2022-04-01 14:08:53
913
原创 C语言基础——教你如何玩转指针(2)
目录常量字符串和数组创建的字符串常量字符串常量字符串和数组创建的字符串的区别指针数组数组指针数组指针的作用对于一维数组对于二维数组lucky同学在前面介绍了指针的一些基本内容,我们一起来回忆下:计算机将内存划分为一块一块的空间,且每一块有一个编号,这个编号就叫地址,即地址唯一标识一块空间,用来存放地址的变量叫做指针变量。指针类型与其所指向的数据有关,决定了指针解引用的时候能访问的权限。指针变量的大小也是固定的,32位平台下为4字节,64位平台下为8字节。还有指针的三种
2022-03-28 14:51:43
919
原创 C语言基础——sizeof()和strlen()傻傻分不清怎么破?
在平时的C语言学习中,有很多朋友可能对sizeof()和strlen()的用法混淆不清,今天lucky同学以一维数组的访问为例,来对两者的用法加以介绍和区分。sizeof()的用法sizeof不是函数,是一个操作符,sizeof计算的是对象所占内存的大小,单位是字节,它不在乎内存中存放的是什么,只在乎内存的大小。对于数组的访问,首先要清楚这几个概念:数组名通常为首元素的地址,但有两个例外:1、sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小2、&数组名
2022-03-24 19:02:19
888
原创 C语言基础——教你如何玩转指针(1)
目录什么是指针指针和指针类型指针分类的意义野指针指针运算指针和数组的关系用指针来访问数组二级指针指针数组什么是指针计算机中,将内存分为一个个小的单元,每个单元为一个字节,内存中最小单元的编号(32or64位的二进制编号)就是指针(地址),口头说的指针,通常指的是指针变量。指针变量:通过&(取地址操作符)取出变量的内存真实地址,把地址存放到一个变量中,这个变量就是指针变量,如下面的pa。#include<stdio.h>int m
2022-03-22 14:21:46
811
原创 C语言基础——浮点型在计算机内存中的存储
可以发现,整型的n经过强制类转化为浮点型时,打印结果为0.000000,而不是预想的9.000000,同样,浮点型的n经过强制类转化为整型时,打印结果为一个很大的数,而不是预想的9,由此可知,浮点型与整型在计算机内存中的存储方式是有差异的。由于1≤M≤2,在计算机内部保存M时,只保留小数部分,比如保存1.01时,只保存01,等到读取的时候,再把第一位的1加上去,这样是为了节省1位有效数字的空间。对于32位的浮点数,最高的1位是符号S,接着8位是指数E,剩下的23位为有效数字M。......
2022-03-18 11:36:35
566
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人