C/C++ 基础教程
文章平均质量分 59
zz7zz7zz
擅长Android前端 / 擅长C++Server后台开发
展开
-
c/c++ 基础(四) 指针定义
int a;//一个整型数int *a; //一个指向整型的指针int **a; //一个指向指针的指针,它指向的指针指向的是一个整型数int a[10]; //一个有10个整型数的数组int *a[10]; //一个有10个指针的数组,该指针指向的是一个整型数(指针数组)int (*a)[10]; //一个指向有10个整形数数组的指针i原创 2014-10-18 11:20:47 · 661 阅读 · 0 评论 -
c/c++基础(十五) c编译初步
参考文章:http://wiki.ubuntu.org.cn/Compiling_C转载 2014-11-24 12:39:23 · 647 阅读 · 0 评论 -
c/c++基础(十六) c++编译初步
参考文章:http://wiki.ubuntu.org.cn/Compiling_Cpp转载 2014-11-24 12:40:31 · 769 阅读 · 0 评论 -
c/c++基础(二十) 类的前向声明和#include区别
在头文件中引入另一个类经常有两种写法:(1)class Name;(2)#include "Name.h"它们的区别是什么呢?第一种叫做前向声明,在程序中引入了类类型为Name.在声明之后,定义之前,类Name是一个不完全类型(incompete type),即已知Name是一个类型,但不知道包含哪些成员.不完全类型只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数.(前向声明只知道有这么一个类,原创 2014-12-01 15:45:58 · 1091 阅读 · 0 评论 -
c/c++基础(二十一) 命名空间
命名空间(namespace)是一种描述逻辑分组的机制,可以将按某些标准在逻辑上属于同一个任务中的所有类声明放在同一个命名空间中。标准C++库(不包括标准C库)中所包含的所有内容(包括常量、变量、结构、类和函数等)都被定义在命名空 间std(standard标准)中了。定义命名空间有两种形式的命名空间——有名的和无名的。命名空间的定义格式为:(取自C++标准文档)转载 2014-12-01 19:37:22 · 752 阅读 · 0 评论 -
c/c++基础(二十三) GDB调试入门
用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:转载 2014-12-01 22:15:03 · 1926 阅读 · 0 评论 -
c/c++基础(二十七) Linux下core文件调试方法
在程序开发中,我们常常用多种方法来定位程序的异常退出,如:打印日志,gdb core等.在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制 1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,转载 2015-01-26 22:35:00 · 910 阅读 · 0 评论 -
c/c++基础(二十四) 静态属性与静态方法
举个例子:类A的声明与实现如下:#pragma onceclass A{ public: int count1; //static int count2=100;//error ,带有类内初始值设定项的成员必须为常量 //const static int count3=100;//正确 static int count2; public: int getCou原创 2014-12-03 18:49:52 · 5263 阅读 · 0 评论 -
c/c++基础(二十五) 编写makefile文件
看文档:http://download.csdn.net/detail/zz7zz7zz/8211313转载 2014-12-07 23:31:49 · 859 阅读 · 0 评论 -
c/c++基础(二十六) gdb调试so
当自己开发了一个so文件,如何调试呢?对于如何编写一个so,请参考文章:http://blog.csdn.net/zz7zz7zz/article/details/41448987对于如何进行gdb调试,请参考文章:http://blog.csdn.net/zz7zz7zz/article/details/41654457假设我们的源文件分别是:filea.c#include <stdio.h>void fun1(){ printf("i am from filea fun1 \n");原创 2014-12-29 15:06:53 · 5567 阅读 · 0 评论 -
c/c++基础(二十二) C++继承:公有,私有,保护
公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。2. 私有继承(private)私有继承的特点是基类的公有成员和保护成员都作为派生类的私有转载 2014-12-01 22:11:37 · 818 阅读 · 0 评论 -
C/C++ 统计函数调用时间
写一个小程序来统计函数调用时间,简单明了直接看代码,有三个文件,FunTimer.h , FunTimer.cpp ,FunTimerMan.cpp 分别如下:FunTimer.h文件#ifndef _FUNTIMER_H#define _FUNTIMER_H#include #include #include using namespace std;class F原创 2015-04-13 23:37:07 · 2977 阅读 · 0 评论 -
Linux 常用命令之搜索文件中的特殊字符并且高亮显示
方法1:vim命令模式下利用 :/ 要搜索的内容 如 ":/ keyword" 在vim中搜索keyword方法2:使用less命令less passwd然后输入:/keyword回车此时如果有keyword字符串,linux会把该字符已高亮方式显示。原创 2015-03-09 17:16:04 · 3189 阅读 · 0 评论 -
c/c++基础(十七) 编译与加载 动态库(.so)
c/c++ 编译so与动态加载so原创 2014-11-24 22:19:23 · 3775 阅读 · 0 评论 -
c/c++ 基础(一) “” <> 区别
标准库的头文件用原创 2014-10-11 14:40:46 · 896 阅读 · 0 评论 -
c/c++ 基础(二) 定义常量
1.使用#define定义常量2.使用原创 2014-10-13 09:20:34 · 687 阅读 · 0 评论 -
c/c++基础(十) c中内部函数和外部函数
函数本质上是全局的,因为一个函数要被另外的函数调用,也可以指定函数不能被其他文件调用。根据能否被其他源文件调用,将函数区分为内部和外部函数。原创 2014-11-16 21:17:49 · 1577 阅读 · 0 评论 -
c/c++基础(十四) 初步认识gcc
注意:本文可能会让你失望,如果你有下列疑问的话:为什么要在终端输命令啊? GCC 是什么东西,怎么在菜单中找不到? GCC 不能有像 VC 那样的窗口吗?…… 那么你真正想要了解的可能是 anjuta,kdevelop,geany,code blocks,eclipse,netbeans 等 IDE 集成开发环境。即使在这种情况下,由于 GCC 是以上 IDE 的後台的编译器,本文仍值得你稍作转载 2014-11-24 10:50:23 · 638 阅读 · 0 评论 -
c/c++基础(十九) 友元
概念的东西不讲了,直接上代码:1.友元函数:Point.类的声明与定义:#pragma once#ifndef _POINT_H#define _POINT_Hclass Point{ public: void getXY(); friend double distanceXY(Point &a,Point &b); public: Point(double原创 2014-11-30 22:07:12 · 787 阅读 · 0 评论 -
c/c++基础(十八) #pragma pack
程序编译器对结构的存储的特殊处理确实提高CPU存储变量的速度,但是有时候也带来了一些麻烦,我们也屏蔽掉变量默认的对齐方式,自己可以设定变量的对齐方式。编译器中提供了#pragma pack(n)来设定变量以n字节对齐方式。n字节对齐就是说变量存放的起始地址的偏移量有两种情况:第一、如果n大于等于该变量所占用的字节数,那么偏移量必须满足默认的对齐方式,第二、如果n小于该变量的类型所占用的字节转载 2014-11-27 10:46:51 · 858 阅读 · 0 评论 -
c/c++基础(八) 函数指针
指向函数的指针: 一个函数在编译时原创 2014-11-02 22:17:14 · 853 阅读 · 0 评论 -
c/c++基础(九) auto, static , register , extern 区别
先说几个概念:1.从变量的生存期来分,可以分为 静态存储方式 和 动态存储方式静态存储方式:程序运行期间由系统分配固定的存储空间的方式(全局变量)动态存储方式:程序运行期间根据需要动态的分配存储空间的方式(1.函数形参,2自动变量,3函数调用时的现场保护盒返回地址)2.数据存储类别包含四种:auto(自动), static (静态), register (寄存器), extern (外部)原创 2014-11-16 12:12:45 · 2039 阅读 · 2 评论 -
c/c++基础(十一) 预处理
预处理明亮是标准C统一规定的,但它不是C语言本身的一部分,不能直接对它们进行编译原创 2014-11-17 22:57:31 · 902 阅读 · 0 评论 -
c/c++基础(十二) 混合编程
extern “C”在C++环境下使用C函数的时候,常常会出现编译器无法找到obj模块中的C函数定义,从而导致链接失败的情况,应该如何解决这种情况呢?答案与分析:C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译转载 2014-11-20 17:10:32 · 833 阅读 · 0 评论 -
c/c++基础(十三) 交换变量
1.原始方法int原创 2014-11-23 14:52:29 · 845 阅读 · 0 评论 -
c/c++ 基础(七) 函数覆盖,虚函数,纯虚函数对比
通过代码演示了在继承结构中,函数覆盖,虚函数,纯虚函数的关系。原创 2014-10-29 16:29:37 · 1120 阅读 · 0 评论 -
c/c++ 基础(六)迷途指针定义
在计算机编程领域中,迷途指针,或称悬空指针、野指针,指的是不指向任何合法的对象的指针。当所指向的对象被释放或者收回,但是对该指针没有作任何的修改,以至于该指针仍旧指向已经回收的内存地址,此情况下该指针便称迷途指针。若操作系统将这部分已经释放的内存重新分配给另外一个进程,而原来的程序重新引用现在的迷途指针,则将产生无法预料的后果。因为此时迷途指针所指向的内存现在包含的已经完全是不同的数据。通转载 2014-10-18 18:02:29 · 900 阅读 · 0 评论 -
c/c++ 基础(五) const修饰符
一、const修饰内置类型转载 2014-10-18 17:38:48 · 739 阅读 · 0 评论 -
c/c++ 基础(三) 指针与数组
直接上代码,观察结果:原创 2014-10-16 11:42:39 · 744 阅读 · 0 评论 -
C/C++基础(三十) 编译与加载 静态库(.a)
1.定义StaticLibDef.h#ifndef _STATIC_LIB_H#define _STATIC_LIB_Hvoid fun();class LibObject{ public: void fun(); void other_fun();};#endif2.实现StaticLibDef.cpp#i原创 2015-11-11 17:43:48 · 4204 阅读 · 0 评论