随笔分类 - 【C/C++和指针】
摘要:一,printf1)作用:产生格式化输出的函数(定义在 stdio.h 中)。2)用法:int printf(const char *format,[argument]);format 参数输出的格式,定义格式为:%[flags] [width] [.perc] [F|N|h|l] type 规定数据输出方式,具体如下: 1.type 含义如下: d 有符号10进制整数 i 有符号10进制整数 o 无符号8进制整数 u 无符号10进制整数 x 无符号的16进制数字,并以小写abcdef表示 X 无符号的16进制数字,并以大写ABCDEF表示 f...
阅读全文
摘要:int、char、short等非浮点数在内存中是按照补码的形式存储的。1)按位取反(~) 单目运算符,参与运算的数和结果均以补码方式出现。 功能:各位取反,如果首位为1则其真实值为:除符号位外,各位取反末尾加1。 示例:~100 = - 101 (100) 的二进制表示为: 0110 0100 ~100 的二进制表示为: 1001 1011 所以等号左边=1001 1011 由于int、char、short均按照补码存储,则实际数为:1110 0100 = -1012)按位与(&) 双目运算符,参与运算的数和结果均...
阅读全文
摘要:一,强制类型转换 当操作数的类型不同,而且不属于基本数据类型时,经常需要强制类型转换,将操作数转化为所需要的类型。强制类型转换具有两种形式,称为显式强制转换和隐式强制类型转换。强制类型转换不改变原来数据的类型。 C++中强制类型转换函数有4个: const_cast(用于去除const属性) static_cast(用于基本类型的强制转换) dynamic_cast(用于多态类型之间的类型转换) reinterpreter_cast(用于不同类型之间的指针之间的转换,最常用的就是不同类型之间函数指针的转换)二,强制类型...
阅读全文
摘要:序:对于一个空类,编译器默认生成四个成员函数:默认构造函数、析构函数、拷贝构造函数、赋值函数一,默认构造函数 默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式就会使用默认构造函数。 如果用户定义的类中没有显式的定义任何构造函数,编译器就会自动为该类型生成默认构造函数,称为合成的构造函数(synthesized default constructor)。 C++语言为类提供的构造函数可自动完成对象的初始化任务 全局对象和静态...
阅读全文
摘要:一,构造函数与析构函数auto_ptr在构造时获取对某个对象的所有权(ownership),在析构时释放该对象。我们可以这样使用auto_ptr来提高代码安全性:int* p = new int(0);auto_ptr<int> ap(p);从此我们不必关心应该何时释放p, 也不用担心发生异常会有内存泄漏。这里我们有几点要注意:1) 因为auto_ptr析构的时候肯定会删除他所拥有的那个对象,所有我们就要注意了,一个萝卜一个坑,两个auto_ptr不能同时拥有同一个对象。像这样:int* p = new int(0);auto_ptr<int> ap1(p);auto_
阅读全文
摘要:一,入门const 指针 指针指向的内容不能变,指针可以改变指向指向const的指针 指针不可以改变指向,指针指向内容可以变#include "stdio.h" int main() { //const 指针 (指针指向的内容不能变,指针可以改变指向) int a = 5; int b = 6; const int *ptr = &a; *ptr = 8; //error ptr = &b; //ok; //指向const的指针 (指针不可以改变指向,指针指向内容可以变) int a = 5; int b = 6; int * const...
阅读全文
摘要:一,函数指针 1)定义:指向函数的指针变量。“函数指针”本身是指针变量,该指针变量指向函数。 2)区别:这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。 3)说明:C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。 4)用途:函数指针有两个用途:调用函数和做函数的参数。 5)函数指针的声明方法为: 函数类型 (标志符 指针变量名) (形参列表) 注1:“函数类型”说明函数的返回类型, “(标志符 指针变量名 )”中的括号不能省,若...
阅读全文

浙公网安备 33010602011771号