2018-11-01 14:16
⁄ 工业·编程
⁄ 共 2477字
一、概念
在如下的A指向B、B指向C的指向关系中:
首先
C是"一段内容",比如你用malloc或者new分配了一块内存,然后塞进去"一段内容",那就是C了。C的起始地址是0x00000008。
B是一个指针变量,其中存放着C的地址,但是B也要占空间的啊,所以B也有地址,B的起始地址是0x00000004,但是B内存中存放的是C的地址,所以B里面的内容就是0x00000008。
那么到此为止都比较好理解:
B= 0x00000008; //B的内容
*B ...
指针阅读全文
2018-10-31 13:52
⁄ 工业·编程
⁄ 共 997字
对于一个函数,如果未加引用,则是按值传递,实际上只是复制了一个传入参数相同类型相同值的变量进行操作,当函数结束时,传入变量并未改变,如:
代码1:
void Func(int num)
{
num += 1;
}
int main()
{
int a = 1;
Func(a);
cout<<a<<endl;
return 0;
}
这段代码执行时,将a的值复制给num,num加上1之后为2,...
指针阅读全文
2018-10-30 13:48
⁄ 工业·编程
⁄ 共 483字
在重新回顾C语言数据结构时,在实现顺序表和链表时关于指针使用的区别让我觉得很有趣。
像在顺序表中实现
struct SeqList
{
DataType arry[MAX_SIZE];
int Size;
};
而我们在使用顺序表时,往往在main函数中直接定义:
SeqList seqlist;
在后面对顺序表的使用中,直接传参,比如
InitList(&seqlist);
而在链表中
typedef struct SQList
{
DataType data;
&...
指针阅读全文
2014-06-30 05:21
⁄ 工业·编程
⁄ 共 761字
shared_ptr是一个很好用的东西, 但是有些地方不注意也会带来很不必要的麻烦。
class test_ptr
{
};
typedef shared_ptr<test_ptr> TestPtr;
int main()
{
test_ptr* pTest = new test_ptr;
TestPtr sharePTest(pTest);
delete pTest;
return 0;
}
看看上面这段代码有没有问题? 这段代码什么也没做,可是在运行的时候程序去会崩溃。问题出...
指针, 智能指针阅读全文
2014-05-14 06:40
⁄ 工业·编程
⁄ 共 5174字
文章目录
智能指针
QPointer
很简单的入门程序,应该比较熟悉吧 ^_^
#include <QApplication> #include <QLabel>
int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel *label = new QLabel("Hello Dbzhang800!"); label->show(); ...
Qt, 指针阅读全文
2013-08-29 22:34
⁄ 工业·编程
⁄ 共 631字
先来看一个例子:
文件1:int array_a[3]={1, 2, 3}
文件2:extern int *array_a; printf(“%d”, array_a[2]);
请问输出是多少?
答案是运行时会出错,原因是访问了不可访问的内存。将extern int *array_a改为extern int array_a[]后正常输出。
为什么会出现这样的情况呢?
出现这个问题的原因是编译器对数组和指针的解释是不同的。
使用extern int *array_a; 作声名,编译器会把array_a理解为一个指向int 的指针,对指针...
差别, 指针, 数组, 新手阅读全文
2013-06-30 21:16
⁄ 工业·编程
⁄ 共 439字
下面这个程序不见得在每种编译器上都能通过编译,既使通过了编译,也不见得可以成功运行并输出结果。
让人欣慰,更让人郁闷的是:它在我的Visual Studio 2005 SP1中,既能顺利编译,也能正常运行。
它虽然投机取巧,胡作非为,蝇营狗苟,横行霸道。但它至少能引发你的思考,加深一点你对this指针的理解,如果你还不是十分理解的话。
#include <iostream> using namespace std; #pragma warning(disabl...
指针阅读全文
2013-04-14 06:40
⁄ 工业·编程
⁄ 共 4024字
如果在程序中定义一个变量,在编译时就给这个变量分配内存单位。系统根据程序中定义的变量类型,分配一定长度的空间。例如,C++编译系统一般为整形变量分配4个字节,为单精度浮点型变量分配4个字节,为字符型变量分配1个字节。内存区的每一个字节有一个编号,这就是“地址”,它相当于旅馆中的房间号。在地址所标识的内存但愿中存放数据,这相当于旅馆中各个房间中居住旅客一样。
区别:内存单元的地址与内存...
c++, 指针阅读全文
2012-12-04 23:06
⁄ 工业·编程
⁄ 共 1674字
今天在MFC工程中使用了WM_USER定义用户消息,从文档中得知ON_MESSAGE的消息处理函数应该符合如下格式:afx_msg LRESULT (CWnd::*)(WPARAM, LPARAM)。其中的作用域"CWnd::"引起了我的好奇。我们知道,消息处理函数只能在CWnd的派生类中定义或者重载,其作用域必然是CWnd派生类。为此我做了个实验:
class Parent {
}; class Child: public Parent { public: int Func(in...
指针阅读全文
2012-11-12 21:48
⁄ 工业·编程
⁄ 共 1621字
(一)m_hWnd ① m_hWnd这个成员变量,最早是定义在类CWnd中,而且是类CWnd的第一个数据成员,先看一下MSDN的解析:
The handle of the Windows window attached to this CWnd. The m_hWnd data member is a public variable of type HWND.
由此可知,它是窗口类的一个句柄,凡是从CWnd派生的类都有这个句柄,凡是以CWnd派生的类定义的对象内部也都有这个句柄,它是类或者对象标识自己的句柄。 凡是窗口都有一个句柄用来标...
MFC, 指针阅读全文