函数指针

【C语言】23-typedef

ぃ、小莉子 提交于 2020-04-04 21:11:51
本文目录 一、typedef作用简介 二、typedef与指针 三、typedef与结构体 三、typedef与指向结构体的指针 四、typedef与枚举类型 五、typedef与指向函数的指针 六、typedef与#define 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 这讲介绍C语言中很常用的一个关键字---typedef。 回到顶部 一、typedef作用简介 * 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。 1 #include <stdio.h> 2 3 typedef int Integer; 4 typedef unsigned int UInterger; 5 6 typedef float Float; 7 8 int main(int argc, const char * argv[]) { 9 Integer i = -10; 10 UInterger ui = 11; 11 12 Float f = 12.39f; 13 14 printf("%d %d %.2f", i, ui, f); 15 16 return 0; 17 } 在第3、第4、第6行分别给int、unsigned int

C++文件读写详解

回眸只為那壹抹淺笑 提交于 2020-04-04 00:07:10
转自: http://blog.csdn.net/kingstar158/article/details/6859379 在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结: 这里主要是讨论fstream的内容: 1 #include <fstream> 2 2.ofstream //文件写操作 内存写入存储设备 3 3.ifstream //文件读操作,存储设备读区到内存中 4 4.fstream //读写操作,对打开的文件可进行读写操作 1.打开文件 在fstream类中,成员函数open()实现打开文件的操作,从而将数据流和文件进行关联,通过ofstream,ifstream,fstream对象进行对文件的读写操作 函数:open() 1 <span style='font-family: "Times New Roman"; font-size: 16px;'> 2 public member function 3 4 void open ( const char * filename, 5 ios_base::openmode mode = ios_base::in | ios_base::out ); 6 7 void open(const wchar_t *

c语言字符串处理函数

这一生的挚爱 提交于 2020-03-29 04:03:21
很高效的字符串处理函数: void *memccpy (void *dest, const void *src, int c, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中。如果复制过程中遇到了字符c则停止复制,返回指针指向dest中字符c的下一个位置;否则返回NULL。 void *memcpy (void *dest, const void *src, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中。返回指针为dest的值。 void *memchr (const void *s, int c, size_t n); 在s所指向的对象的前n个字符中搜索字符c。如果搜索到,返回指针指向字符c第一次出现的位置;否则返回NULL。 int memcmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符。返回值是s1与s2第一个不同的字符差值。 int memicmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符,忽略大小写。返回值是s1与s2第一个不同的字符差值。 void *memmove (void *dest, const void

php文件函数

徘徊边缘 提交于 2020-03-27 15:14:54
文件函数库 文件、目录函数库为 PHP 核心函数库,可以通过其提供的 API 完成对于文件及目录的常用操作。 文件信息相关的 API /* * 文件信息相关API * filetype(), filesize(), filectime(),filemtime(), fileatime() */ $dirname = "./"; $filename = "./11.txt"; // string filetype(string filename):返回文件的类型 echo '文件类型为:', filetype($dirname), "\n"; //dir echo '文件类型为:', filetype($filename), "\n"; //file //int filesize(string filename):返回文件大小的字节数 echo '文件大小:', filesize($filename), "\n"; //int filectime(string filename):返回文件的创建时间的时间戳 echo '文件的创建时间:', date('Y-m-d H:i:s', filectime($filename)), "\n"; //int filemtime(string filename):返回文件的最后修改时间的时间戳 echo '文件的修改时间:', date('Y

c++学习笔记一

我们两清 提交于 2020-03-22 14:54:28
定一个头文件person.h包含类的声明:每行后面的注释是学习过程中的体会与思考 #include<iostream> #ifndef PERSON_H_ #define PERSON_H_ class Person { private: int ID;//只有静态的常量数据成员才可以在类中初始化,与C#不一样 std::string Name; int Age; double Money; char * Address;//定义一个字符串指针成员 static int PersonNum;//定义一个静态变量记录对象的个数,静态变量要在源文件中初始化,如果没初始化会有错误,为什么? public: Person();//默认的构造函数 Person(int id,std::string name,int age,double m,const char* s);//带有参数的构造函数 Person(const Person & s);//定义复制构造函数 Person & operator=(const Person &p);//重载=操作符,实现深度复制 virtual ~Person();//析构函数 virtual void playway();//定义一个虚函数,通过虚函数实现多态 void GetName(); void SetPerson(int id, std:

C++的多态性

南楼画角 提交于 2020-03-21 06:53:17
1.静态多态 (1)函数重载 (2)操作符重载 2.动态多态 继承,虚函数 实现机制: 以下摘自于 http://blog.csdn.net/zyq0335/article/details/7657465 1 什么是多态? 多态性可以简单的概括为“1个接口,多种方法”,在程序运行的过程中才决定调用的机制 程序实现上是这样,通过父类指针调用子类的函数,可以让父类指针有多种形态。 2 实现机制 举一个例子: #include <iostream.h> class animal { public: void sleep() { cout<<"animal sleep"<<endl; } void breathe() { cout<<"animal breathe"<<endl; } }; class fish:public animal { public: void breathe() { cout<<"fish bubble"<<endl; } }; void main() { fish fh; animal *pAn=&fh; pAn->breathe(); } 答案是输出:animal breathe 结果分析: 1从编译的角度 C++编译器在编译的时候,要确定每个对象调用的函数的地址,这称为早期绑定(early binding),当我们将fish类的对象fh的地址赋给pAn时,C

dll的创建和使用

风流意气都作罢 提交于 2020-03-18 19:50:32
前几天有个朋友问道这个问题,结果因为以前从没搞过这个,对vs2005也不熟悉,竟花了2个小时才搞定, 。 特地拿来与大家分享,希望能给像我这样的菜鸟们一些帮助,O(∩_∩)O 【第一步】创建自己的dll 1.打开vs2005,选择菜单【File-New-Project】,在弹出对话框中选择[Visual C++]下的[Win32]-[Win32 Console Application],输入工程名后确认。 2.在弹出的对话框中选择[next],在Application Settiongs中选择Application type为Dll,Additional options选择Empty project,然后点Finish。 这时就创建了一个空的可以生成dll文件的工程。 3.在工程中添加一个头文件(这里为dll_test.h),在头文件中写入如下内容: 1 #ifndef _DLL_TUTORIAL_H 2 #define _DLL-TUTORIAL_H 3 4 #include<iostream> 5 6 #if defined DLL_EXPORT 7 #define DECLDIR _declspec(dllexport) 8 #else 9 #define DECLDIR _declspec(dllimport) 10 #endif 11 12 extern "C" 13 {

C++的多态与切片问题(Section Problem)

对着背影说爱祢 提交于 2020-03-17 16:43:21
C++内存分配的方式大体上可以归纳为3种 1) 从静态存储区中分配:内存在编译时就已经分配好,这块内存在程序的整个运行期间都存在,例如全局变量,static变量 2) 在栈上分配:执行函数时,函数内局部变量的存储单元都可在栈上创建,函数执行结束时,这些存储单元自动被释放 3) 在堆上分配:也称为动态内存分配,程序在运行的时候用malloc或new申请任意多少的内存,除非程序运行结束或者程序员自己用free或delete释放动态内存,否则这块动态内存一直存在 多态性是指为一个函数名关联多种含义的能力,即同一种调用方式可以映像到不同的函数。这种把函数的调用与适当的函数体对应的活动又称为绑定(binding)。根据绑定所进行阶段的不同,可分为早期绑定(early binding)、晚期绑定(late binding),早期绑定发生在程序的编译阶段,称为静态联编(static binding),晚期绑定发生在程序的运行阶段,称为动态联编(dynamic binding)。 1) 早期绑定(Early Binding):也称为编译期多态,指绑定是发生在编译阶段。 1 //: Poly.cpp 2 #include <iostream> 3 4 using namespace std; 5 6 class A { 7 public: 8 A() : x(5) {} 9 virtual void

C++中“强制转换”的四大天王

只谈情不闲聊 提交于 2020-03-17 06:32:28
RTTI RTTI概念 RTTI(Run Time Type Identification)即通过运行时类型识别,程序能够使用基类的指针或引用来检查着这些指针或引用所指的对象的实际派生类型。 RTTI机制的产生 为什么会出现RTTI这一机制,这和C++语言本身有关系。和很多其他语言一样,C++是一种静态类型语言。其数据类型是在编译期就确定的,不能在运行时更改。然而由于面向对象程序设计中多态性的要求,C++中的指针或引用(Reference)本身的类型,可能与它实际代表(指向或引用)的类型并不一致。有时我们需要将一个多态指针转换为其实际指向对象的类型,就需要知道运行时的类型信息,这就产生了运行时类型识别的要求。和Java相比,C++要想获得运行时类型信息,只能通过RTTI机制,并且C++最终生成的代码是直接与机器相关的。 我对Java的运行时类型识别不是很熟悉,所以查了一下相关资料:Java中任何一个类都可以通过反射机制来获取类的基本信息(接口、父类、方法、属性、Annotation等),而且Java中还提供了一个关键字,可以在运行时判断一个类是不是另一个类的子类或者是该类的对象,Java可以生成字节码文件,再由JVM(Java虚拟机)加载运行,字节码文件中可以含有类的信息。 typeid和dynamic_cast操作符 RTTI提供了两个非常有用的操作符

c语言第三次作业

萝らか妹 提交于 2020-03-16 09:00:30
观看视频1.2.2,1.3.1,1.3.2 1、视频笔记 2、编写程序代码列表 3、存在的问题: (1)分不清scanf函数与gets函数的区别 解决方法:通过查阅课本,明白scanf函数不能读入空格或Tab,而gets函数可以。 (2).判断:语句 int *p 和 printf("%d",*p); 中的*p含义相同。(F) 解析:前者表示指针变量,后者表示指针变量储存的地址。 来源: https://www.cnblogs.com/jhy12/p/12501725.html