- 博客(11)
- 收藏
- 关注
原创 函数指针 —— 《C和指针》
函数指针函数指针是指向函数的指针。 因此“函数指针”本身首先是指针变量,只不过该指针变量指向函数。声明返回值类型 ( *指针变量名) (形参列表);int (*pfunc)(int x);int(*pfunc)(int); //无需将形参名给出初始化和普通指针一样,函数指针在使用之前必须初始化为指向某个函数。int func(int x); /...
2020-01-16 18:19:20
324
原创 C语言常用内存优化总结
1. 使用乘法代替除法。如果不需要较高的精度,使用float代替double。2. 如果一个函数内部会频繁地使用全局变量,可以使用局部变量作为全局变量的拷贝。3. 栈总是保持对齐在4字节边界(32位CPU),局部变量定义为char或short并不能带来存储空间上的节省,且会降低变量访问速度。因此,在不修改对齐方式的情况下,尽量将局部变量定义为32位。4. 需要使用结构体作为函数参数时,...
2019-05-06 15:45:52
1784
3
原创 C语言结构和联合
结构1. 结构的声明结构的通常形式是:struct 结构标签(可选){ 类型1 标识符1; 类型2 标识符2; ...}变量定义(可选);基于以上形式,结构可以有如下几种声明://形式1struct{ int age; char name[10];} Person1, Person2;//形式2struct Perso...
2018-09-05 18:09:12
1690
2
原创 指针的运算
本文内容摘自《C和指针》指针的运算包括算术运算和关系运算。只有指向数组元素的指针可以进行指针的运算。算术运算指针的算术运算仅限于2种形式。第一种形式:指针 ± 整数标准定义这种形式只能用于指向数组中某个元素的指针。这类表达式的结果类型也是指针。对一个指针加1会使它指向数组中下一个元素,加5使它右移5个元素的位置。对一个指针减3使它向左移动3个元素的位置。对某一类型的指针,指...
2018-09-05 13:54:23
910
2
原创 数组作为函数的参数
本文内容摘自《C和指针》传值与传址《C和指针》函数的参数一节(7.3节)指出,C函数的所有参数均以“传值调用”方式进行传递,这意味着函数将获得参数值的一份拷贝。这样函数可以放心地修改这个拷贝值,而不必担心会修改调用程序实际传递给它的参数。如果被传递的参数是一个数组名,由于数组名的值是一个指向数组第一个元素的指针,因此实际传递给函数的是指向数组起始位置的指针的一份拷贝,该指针同样指向数组...
2018-09-05 10:00:10
22513
原创 C语言类型转换
本文内容摘自《C和指针》隐式类型转换C语言的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符型和短整型操作数在使用之前被转换为普通整型,这种转换成为整型提升(integral Promotion)。例如:char a, b, c;...a = b + c;b和c的值首先被提升为普通整型,然后再执行加法运算,加法运算的结果将被截短,然后再存...
2018-09-04 16:30:59
197
原创 分析C语言的声明——《C专家编程》
《C专家编程》一书第三章分析了C语言声明的优先级规则,并以char * const *(*next)();为例,用优先级规则对该声明进行分析。优先级规则如下:对上述声明的分析过程如下:对以上分析加以概括:char * const *(*next)(); 表示:next是一个指针,其指向的内容是一个函数(即函数指针),该函数返回另一个指针,该指针指向一个类型为c...
2018-09-04 14:12:39
288
原创 C语言字符串及其常用操作函数——《C和指针》
C语言字符串的概念一串以NUL字节结尾的零个或多个字符。C语言不存在显式的字符串类型,字符串通常存储在字符数组中。字符串常量在程序中使用字符串常量会生成一个“指向字符的常量指针”,当一个字符串常量出现于一个表达式中时,表达式所使用的值就是这些字符所存储的位置,而不是这些字符本身。因此,可以把字符串常量赋值给一个“指向字符的指针”,该指针的值就是字符串常量所存储的地址。void t...
2018-09-04 12:23:15
833
原创 C++STL优先级队列priority_queue
优先级队列priority_queue默认使用vector作为容器,底层数据结构为堆。priority_queue a; //默认为最大值优先级队列,即top元素最大。a.push(5);a.pop();a.top();a.empty(); //判断是否为空priority_queue a; //默认为最大值优先级队列,即top元素最大。a.push(5);
2017-10-11 17:48:17
401
原创 Python 3.5安装pyMySQL错误“error: Microsoft Visual C++ 14.0 is required…”
Python安装某些第三方包时会出现错误“error: Microsoft Visual C++ 10.0 is required”简单的解决方法:下载whl格式的package,再用pip安装。pyMySQL是数据库MySQL的Python接口。Python3支持pyMySQL,python3以前的版本支持mysql-python。pymysql下载地址:https://py
2017-06-10 14:44:14
1646
原创 数据库常用操作
数据库名称:db_01 表名称:tb_01数据库database相关操作:show databases; — 显示所有的数据库名称create database db_01; — 创建数据库use db_01; — 在数据库db_01中进行操作delete database db_01; — 删除数据库数据表table相
2017-06-10 14:43:22
263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人