C/C++
c1194758555
这个作者很懒,什么都没留下…
展开
-
引用、指针、const
1. 数据类型、类型修饰符、变量int *temp;int -- 数据类型* ---- 类型修饰符temp - 变量2. 引用和指针引用: 为对象起了另外一个别名,没有自己的内存空间,定义时必须初始化,只能绑定一个对象且不能更换绑定。指针: 指向另一种类型的符合类型,有自己的内存空间,可以指向不同的对象。3. const 限定符(1) const限定符原创 2017-04-18 19:33:28 · 449 阅读 · 0 评论 -
C++ 左值和右值
左值、右值在C++11中所有的值必属于左值、右值两者之一,右值又可以细分为纯右值、将亡值。在C++11中可以取地址的、有名字的就是左值,反之,不能取地址的、没有名字的就是右值(将亡值或纯右值)。举个例子,int a = b+c, a 就是左值,其有变量名为a,通过&a可以获取该变量的地址;表达式b+c、函数int func()的返回值是右值,在其被赋值给某一变量前,我们不能通过变量名找...转载 2018-11-19 14:43:42 · 875 阅读 · 1 评论 -
内联函数
内联函数最好定义在头文件里,因为内联函数要在调用点展开,所以编译器必须随处可见内联函数的定义,要不然,就成了非内联函数的调用了.所以,这要求每个调用了内联函数的文件都出现了该内联函数的定义。类中定义的函数默认是内联函数。内联函数在调用处展开,避免了函数调用时低开销。inline关键字只是告诉编译器应该采取内联方式调用,最后能否真正内联,看编译器是否支持。宏在预处理时展开,内联函数在编译...原创 2018-11-21 17:58:39 · 228 阅读 · 0 评论 -
使用C进行面向对象编程
stack.h#ifndef __STACK_H__#define __STACK_H__#include <stdio.h>#include <string.h>#include <stdlib.h>#include <stdbool.h>#ifdef __cplusplusextern "C"{#endifstruc...原创 2018-08-03 15:11:15 · 1102 阅读 · 0 评论 -
C语言和设计模式(总结篇)
设计模式的书相信很多人都看过。对于设计模式这样一种方法,相信不同的人有不同的理解。我在这里写的博客只是我个人对设计模式的粗浅认识。文中肯定存在很多的不足和不成熟之处,希望朋友们谅解。望大家多多指正,谢谢! 01)C语言和设计模式(继承、封装、多态)02)C语言和设计模式(访问者模式)03)C语言和设计模式(状态模式)04)C语言和设计模式(命令模式)05)C语言和设计模式...转载 2018-08-03 18:43:15 · 3177 阅读 · 0 评论 -
内存分配的三种方式
内存分配有三种方式:一:从全局存储区域分配:这时内存在程序编译阶段就已经分配好,该内存在程序运行的整个周期都有效,如:全局变量、static静态变量。二:从栈区分配:在执行函数的时候,函数中的局部变量的存储单元都可以从栈中分配,函数执行结束后这些存储单元都会被自动释放,实现从栈中分配存储单元运算操作内置于处理器的指令集中,效率很高 但是分配的内存容量有限。三:从堆中分配:也称为动态内存...转载 2018-07-23 16:54:36 · 3175 阅读 · 0 评论 -
伸缩型数组成员
1. 伸缩型数组成员有如下规则(1) 伸缩型数组必须是结构体的最后一个成员。(2) 结构体至少有一个成员。(3)伸缩型数组类似普通数组,只不过他的放括号里面是空的。例如:struct argv{ int sum; int a[];};伸缩型数组使用malloc分配内存。#include <stdio.h>struct argv{ int sum;...原创 2018-07-04 10:34:03 · 551 阅读 · 0 评论 -
复合字面量(C99)
语法,把类型名放到圆括号里面,后面紧跟一个花括号扩起来的初始化列表。int *a = (int []){1,2};例如:#include <stdio.h>struct argv{ char a[64]; int b;};int func(struct argv a){ printf("argv.a=%s argv.b=%d\n",a.a,a.b...原创 2018-07-03 14:03:48 · 2627 阅读 · 1 评论 -
回调函数和钩子函数
什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。 为什么要使用回调函数? 因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为 int )的被调用函数。转载 2017-09-07 11:02:27 · 588 阅读 · 0 评论 -
指针和数组
1. 指针和素组的访问过程1.1 数组访问数据过程首地址加上偏移量,然后取出地址内容。1.2. 指针访问数据过程从指针变量取出保存的地址,取出地址中保存的数据。1.3. 指针使用下标访问数据首先取出指针变量的地址,然后与偏移量i相加,最后取出改地址的内容。 2. 当数组和指针作为函数的形参时,数组和纸指针相同。 3. char a[] = "ab...原创 2018-11-19 18:38:29 · 167 阅读 · 0 评论