
C语言
静能生悟
静生智,定生慧,一勤天下无难事,俭以养德,厚德载物!!
展开
-
C 语言运算符优先级列表
说明:同一优先级的运算符,运算次序由结合方向所决定。简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右--()圆括号(表达式)/函数名(形参表)--.成员选择(对象)对象.成员名--->成员选择(指针)对象指针->...原创 2018-06-07 16:28:13 · 246 阅读 · 0 评论 -
C结构体包含函数指针
#include <stdio.h>#include <malloc.h>struct person { char *name; unsigned int age; void (*speak)(void); void (*eat)(void);};void speak_chinese(void){ printf("speak chinese!\n");}void ea...原创 2018-06-14 19:51:57 · 1598 阅读 · 0 评论 -
C语言定义函数指针
#include <stdio.h>//void (*p)(char s[]) 函数指针的定义方法//void (*)(char *s) 函数指针的类型int add(int a, int b){ return (a + b);}int sub(int a, int b){ return (a - b);}int main(int argc, char *argv[])...原创 2018-06-09 10:15:19 · 2547 阅读 · 0 评论 -
C语言定义函数指针(typedef)
#include <stdio.h>int add(int a, int b){ return (a + b);}int sub(int a, int b){ return (a - b);}//使用typedef给函数指针类型一个别名//typedef没有定义新的类型,给已经有的类型起一个别名,减少输入typedef int (*padd)(int a, int b);/...原创 2018-06-09 10:23:14 · 10975 阅读 · 0 评论 -
stdint.h介绍
1、stdint.h是c99中引进的一个标准C库的头文件。2、大数输出int64_t数的输出:%lld ; uint64_t数的输出:%llu ; uint64_t数十六进制输出:%llx ; uint64_t数八进制输出:%llo ;...原创 2018-08-10 09:26:19 · 3085 阅读 · 0 评论 -
函数指针类型
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef int (*calculate_sum_fun)(int a, int b);typedef struct handle_t { calculate_sum_fun calculate_sum;} handle_...原创 2018-08-10 14:40:13 · 191 阅读 · 0 评论 -
什么情况下使用指针的引用(指针)
在函数调用时用指针或者引用做参数,表示把变量的地址传递给子函数,但是子函数只能修改指针所指变量的值,并不能修改指针的指向。如果想要修改指针的指向,就要用指针的指针,或者指针的引用。大部分情况下,用指针和引用做参数,只是想要修改指针所指变量的值,并没有想修改指针的指向。但是如果指针所指的这块内存在调用子函数结束之后发生了改变,就要用指针的引用或者指针的指针。下面举几个典型的例子:例子一:...转载 2019-05-12 15:52:12 · 10736 阅读 · 7 评论 -
C自定义函数类型
#include <stdio.h>#include <stdlib.h>/*---------------------自定义函数类型--------------------*/typedef int sum(int a, int b);typedef struct func_st{ sum *p_sum;}func_t;int int_add(...原创 2019-07-31 09:17:36 · 2814 阅读 · 0 评论 -
追求真理:++i为何比i++执行效率高
背景相信很多人遇到过这样的问题:printf("%d,%d",i++,++i);也纠结过这个问题,到底答案是什么。却没有一个参考的资料。唯一知道的是,几乎所有C语言教材都这么讲:i++就是先使用i的值再使i自身加一,而++i则是先使i自身加一,然后再使用i的值。出于对真理的追求。今天我们彻底弄明白此问题。譬如这样的话:int a,b;int i=10,j=10;a=i++;b=+...原创 2019-08-21 17:46:59 · 568 阅读 · 0 评论