12.7学习笔记
1.来介绍一下结构体的一个存储规则,这个规则看着很无理,莫名其妙的制定规则让存储很难,但是实际上是为了更好读取,也就是用空间换时间, 这就是解释的具体原因下面是具体例子 解析:先引入一个新概念, 偏移量,这是对偏移量的简单解释,简单说就是元素首地址与结构体首地址之间相差的字节数 根据规则,先将从c1存入结构体偏移量为0的地址,,然后开始存储第二个in...
12.1学习笔记
1.这是一个判断字符的一个函数,是就返回正数,不是就返回0.2.这一个较为重要的函数,查找功能,email作为被查找数组,substr作为要找的字符串,若Email中存在substr,则返回返回substr在email中出现的起始地址,如下图会输出bitejiuyeke.com这一串字符。第二张图是模拟实现的代码及结果。 3.这是一个memcpy模拟...
11.30学习笔记
今天学了几个关于字符的函数: 1.strcpy,这是一个比较常用的函数,,用来复制字符串,以下是他的源代码以及应用 2.strcmp:用来比较两个字符串的大小,这是具体的实现过程 3.strcat:这是一个接着复制的字符串,以下是使用方法及结果 原文发表于 CSDN: 11.30学习笔记 ,作者:wxszz10。保留原文内容及图片。原文采用 CC ...
11.25学习笔记
1.举一个例子,来体现函数指针数组的便利,这是化简后的版本,这是之前的版本 仅仅是一部分,就和化简后的代码一样长 2.这是对快速排序函数qsort的解析,比较有意思的是最后一个参数,要自己制定一个比较规则函数作为参数传入。 原文发表于 CSDN: 11.25学习笔记 ,作者:wxszz10。保留原文内容及图片。原文采用 CC BY-SA 4.0 协...
11.24学习笔记
1. 这是一个很有意思的实例,其实考察了对于函数指针格式的理解,还涉及到了类型转换, 首先,*(void)(*)()这个就是函数指针的类型,然后将0由int转换为函数指针的类型,然后配合后面的括号,意味着调用地址为0x00000的函数。 2. 这是第二个例子,题目是void(*signal(int,void(*)(int) ) ) (int),一下让人...
11.23学习笔记
1.这是一个易混点,其中第二个和第三个非常容易搞混,要搞清楚这两个,就要明白指针的格式, (int)*(arr)( );第一个括号指的是地址中所指向的空间中所装的数据类型,第二个括号则是变量名,第三个括号则是可有可无的,这个要看具体要创造的变量类型。 例如第二个实际上是(int)*(parr1[10])这样的,也就是创造了一个数组,有十个元素,元素...
11.21学习笔记
1.这个就是关于数组名的特殊应用,其与后面的数组指针有很大关系 2.这个就是数组指针的一个简单应用,得到的是整个数组的地址 tip: 所以貌似和数组指针没有区别,但是实质上的区别在这 3.*(p+i)这个相当于得到第i行的首元素地址,*(*(p+i)+j)得到就是第i行第j个的元素 4. 这两个实际上是等价的,相同意义 原文发表于 CSDN: 11....
11.14学习笔记
1.原码反码补码存在的原因,由于cpu只有加法器,为了能进行减法,于是设计了三码2.三码之间的互换规则3.整型大家族,unsigned存在的意义就是来存储那些不存在负数的值 原文发表于 CSDN: 11.14学习笔记 ,作者:wxszz10。保留原文内容及图片。原文采用 CC BY-SA 4.0 协议。
11.11学习笔记
一.对于字符串的浅显理解:存储字符串有2种方法: 1.用数组来存储,char arr[]="字符串";这样的形式,优点易于更改,缺点格式麻烦,而且涉及了很多知识,例如数组就代表其首元素地址,相当于已经赋值了的指针变量。但是不能用char* arr来代替arr来进行存储,因为char* arr只是一个指向数组的指针,而并不具...
11.9学习笔记
1.不能对NULL进行解应用 2.常见的一些错误 (1)这个较为简单,可通过编译器的报错发现,好更改 (2)这个基本在调用函数时出现,例如: 也比较好解决,加个库就可以了 (3)一般属于程序的逻辑问题,不能完成指定要求,很难发现,通过调试解决 3.这是一个搜索键,迅速找到代码中的指定名称 4.下载git和tortoisegit,前者是一个版本更新的东...