![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【C/C++和指针】
文章平均质量分 95
小田
无人扶我青云志,我自踏雪向山巅。倘若命中无此运,孤身亦可登昆仑。他朝若有翻身时,生吃黄莲也叫甜。
展开
-
C++ 一文讲透内存分配
我们都知道C++中的内存管理是一个比较麻烦的事情,现在有个需求,需要在程序中记录主动申请的内存和主动释放的内存,以确保没有发生内存泄漏。程序在运行时,操作系统将可执行文件载入到计算机的内存中,成为一个进程。面试官:(笑)好吧,最后一个问题,咱们上面一直在讨论堆中的内存的分配和释放,请问一下,如果在栈上分配一块固定的内存?存放程序执行的机器指令,通常情况下,代码段是共享的,频繁执行的程序在内存中只有一个副本就可以。与data数据段不同的是,如果程序未运行,bss段的存储空间是不存在的,因而也不会有初始值。原创 2024-02-13 20:04:40 · 869 阅读 · 0 评论 -
【C/C++和指针】深度解析---指针与数组 【精华】
一,引例子二维数组可以使用指向数组的指针代替,而指针数组才可以用指向指针的指针代替。#includeusing namespace std;void main(){ char *a[]={"Hello","the","World"}; //指针数组 char **pa=a; //指向指针的指针 pa++; cou原创 2012-09-08 00:20:47 · 2287 阅读 · 8 评论 -
【C++】C++面试题
1.static有什么用途?(请至少说明两种)1)函数体内,声明为static的变量,在函数调用中其值不变。2) 在同一个文件内(但在函数体外),声明为静态的变量,可被本文件内所有函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用2.引用( &)与指原创 2011-11-29 23:13:44 · 1956 阅读 · 0 评论 -
【C++】怎样不用中间变量temp 实现两个数交换
第一类方法也是常用的方法,通过多次的数值计算来完成交换,到现在知道的有下面三种:(1)加减法。a = a + b;b = a - b;a = a - b;该方法可以交换整型和浮点型数值的变量,但在处理浮点型的时候有可能出现精度的损失,例如对数据:a = 3.123456b = 1234567.000000交换后各变量值变为:a = 1234567.000000原创 2011-11-29 23:11:38 · 3056 阅读 · 4 评论 -
【Windows编程】如何判断操作系统是64位还是32位
我为我基础知识掌握的薄弱,感到深深的“折服”。感觉从知识体系的掌握上就有问题!!需要探索性的改进自身的知识架构。加油吧…… 一,不同位数操作系统下类型简介 类型32位操作系统(字节)64位操作系统(字节)char11short22int44long48long lo原创 2012-10-25 15:05:03 · 7093 阅读 · 2 评论 -
【C和指针】#if 0 #end if
一,“#if 0/ #if 1 ... #endif” 的作用 1) code中定义的是一些调试版本的代码,此时code完全被编译器忽略。如果想让code生效,只需把#if 0改成#if 1 2) #if 0还有一个重要的用途就是用来当成注释,如果你想要注释的程序很长,这个时候#if 0是最好的,保证不会犯错误原创 2013-01-25 00:02:49 · 3760 阅读 · 3 评论 -
【C和指针】不定参数
一,不定参数实例#include "stdio.h"/*函数参数是以数据结构"栈"的形式存取,从右至左入栈.eg:*/void fun(int a, ...){ int *temp =&a; temp++; int i; for (i = 0; i < a; ++i) { printf("%d\n",*temp); temp++; }} int main原创 2013-01-30 10:40:57 · 1779 阅读 · 0 评论 -
【C/C++】static 的思考
static用法小结static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明一、局部静态变量在C/C++中, 局部变量按照存储转载 2014-06-24 23:38:04 · 1174 阅读 · 1 评论 -
【C和指针】函数指针
一,函数指针 1)定义:指向函数的指针变量。“函数指针”本身是指针变量,该指针变量指向函数。 2)区别:这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。 3)说明:C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样原创 2012-07-21 21:13:55 · 1048 阅读 · 2 评论 -
【C和指针】const指针
一,入门const 指针 指针指向的内容不能变,指针可以改变指向指向const的指针 指针不可以改变指向,指针指向内容可以变 #include "stdio.h" int main() { //const 指针 (指针指向的内容不能变,指针可以改变指向) int a = 5; int b = 6;原创 2012-07-21 21:53:17 · 1443 阅读 · 0 评论 -
【C/C++和指针】类默认生成的四个函数
序:对于一个空类,编译器默认生成四个成员函数:默认构造函数、析构函数、拷贝构造函数、赋值函数一,默认构造函数 默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式就会使用默认构造函数。 如果用户定义的类中没有显式的定义任何原创 2012-07-24 14:43:26 · 2834 阅读 · 2 评论 -
【C/C++和指针】深度剖析----强制类型转换(一)
一,强制类型转换 当操作数的类型不同,而且不属于基本数据类型时,经常需要强制类型转换,将操作数转化为所需要的类型。强制类型转换具有两种形式,称为显式强制转换和隐式强制类型转换。强制类型转换不改变原来数据的类型。 C++中强制类型转换函数有4个: const_cast(用于去除const属性)原创 2012-07-24 17:41:08 · 2332 阅读 · 0 评论 -
【C/C++和指针】深入讲解位运算
int、char、short等非浮点数在内存中是按照补码的形式存储的。1)按位取反(~) 单目运算符,参与运算的数和结果均以补码方式出现。 功能:各位取反,如果首位为1则其真实值为:除符号位外,各位取反末尾加1。 示例:~100 = - 101 (100) 的二进制表示为: 0110 0100原创 2012-07-25 15:19:22 · 1124 阅读 · 0 评论 -
【C/C++和指针】著名的《const的思考》
1、什么是const?常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:)2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。3、cons有什么主要的作用?(1)可以定义const常量,具有不可变性。例如:const int Max=100;转载 2011-11-29 23:15:54 · 1288 阅读 · 4 评论 -
【C/C++和指针】printf 的那些事
一,printf 1)作用:产生格式化输出的函数(定义在 stdio.h 中)。 2)用法:int printf(const char *format,[argument]); format 参数输出的格式,定义格式为:%[flags] [width] [.perc] [F|N|h|l] type 规定数据输出方原创 2012-07-25 15:35:48 · 3252 阅读 · 1 评论 -
【C/C++和指针】auto_ptr智能指针
一,构造函数与析构函数auto_ptr在构造时获取对某个对象的所有权(ownership),在析构时释放该对象。我们可以这样使用auto_ptr来提高代码安全性:int* p = new int(0);auto_ptr ap(p);从此我们不必关心应该何时释放p, 也不用担心发生异常会有内存泄漏。这里我们有几点要注意:1) 因为auto_ptr析构的时候肯定会删原创 2012-07-22 10:19:59 · 1634 阅读 · 7 评论