标签: pointers

在教C时,在指针之前或之后教导数组会更好吗?

对于那些有课程开发经验的人:关于数组的最佳策略是什么?

我见过一些学校在变量和控制结构之后教授数组,甚至在教学功能之前.这允许教授一些基本的算法等.然而,它带来了如何将数组传递给函数的问题,因此有必要回到数组指针教授和补丁.

另一个选择是从变量和控制结构转到函数,然后教指针,一旦你有指针,从头开始教数组,然后使用它来获得动态内存分配.

对我来说第二个选项更有意义,因为与简单变量不同,使用数组很容易"走出界限",但是尚未了解内存和指针的学生可能无法理解这些界限之外的内容.

但是,我很想知道其他人的想法.

c arrays pointers

19
推荐指数
4
解决办法
2826
查看次数

C++指向函数的指针,初学者问题

我想问一下C++中的指针

我有一些简单的代码:

int add(int a, int b){
 return a+b;
}

int runner(int x,int y, int (*functocall)(int, int)){
 return (*functocall)(x,y);
}
Run Code Online (Sandbox Code Playgroud)

现在,假设我使用这种方式调用这些函数:

cout<<runner(2,5,&add);
Run Code Online (Sandbox Code Playgroud)

或者可能

cout<<runner(2,5,add);
Run Code Online (Sandbox Code Playgroud)

有什么不同吗?因为当我尝试时,结果是相同的,没有错误.

非常感谢

c++ pointers function

19
推荐指数
2
解决办法
361
查看次数

c ++指针范围

当您拥有以下代码时会发生什么:

void makeItHappen()
{
    char* text = "Hello, world";
}
Run Code Online (Sandbox Code Playgroud)

是否text超出范围并自动删除或保留在内存中?

以下示例如何:

class SomeClass
{
    public:
      SomeClass();
      ~SomeClass();
};

SomeClass::SomeClass() { }
SomeClass::~SomeClass()
{
    std::cout << "Destroyed?" << std::endl;
}

int main()
{
    SomeClass* someClass = new SomeClass();
    return 0;
} // What happend to someClass?
Run Code Online (Sandbox Code Playgroud)

这里有同样的事吗?

谢谢!

c++ pointers scope

19
推荐指数
3
解决办法
2万
查看次数

C++ Const指针声明

我正在审查一些代码,我遇到了一些我不熟悉的代码.经过一番搜索后,我无法想出为什么要这样做或者这个声明的好处.

myClass const * const myPtr = myClass->getPointer();
Run Code Online (Sandbox Code Playgroud)

这是const指针的声明还是完全不同的东西?

c++ pointers constants

19
推荐指数
2
解决办法
1万
查看次数

不使用+添加两个数字

我有这个代码可以解决这个问题:

#include <stdio.h>
int main()
{
    int a = 30000, b = 20,sum;
    char *p;
    p=(char *)a;
    sum = (int)&p[b]; // adding a & b
    printf("%d",sum);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下代码中发生了什么吗?

p = (char*)a;
sum = (int)&p[b]; // adding a & b
Run Code Online (Sandbox Code Playgroud)

c pointers

19
推荐指数
3
解决办法
981
查看次数

Objective-C中的标记指针

回答这个问题时,我注意到现代Objective-C运行时使用了标记指针.Mike Ash文章及其评论指出,它们用于某些NSNumberNSDate实例.

这让我想到了不同平台的完整情景表:

OSX/iOS 32/64位Objective-C运行时在哪里使用标记指针?

pointers memory-management runtime objective-c

19
推荐指数
1
解决办法
3598
查看次数

避免指针问题的最佳实践

与指针有关的程序员错误的实际结果是什么?

当程序员创建指针错误时会发生什么"不良影响"?

带代码的实际例子是优选的.

c pointers

18
推荐指数
2
解决办法
4449
查看次数

C++类中的指针成员变量初始化

这听起来很基本,以至于让我觉得我自己没有努力找到答案,但我发誓我搜索了大约20分钟而没有找到答案.

如果私有c ++类成员变量(非静态)是指针,并且它未在构造函数中初始化(通过初始化列表或构造函数中的赋值),那么在完全实例化类时它的值是什么?

额外的问题:如果上述问题的答案不是NULL,并且我希望始终将特定成员指针变量初始化为NULL,并且我有多个构造函数,那么我是否真的必须在每个构造函数中对该指针进行显式初始化我写的构造函数?如果是这样,专业人士如何处理这个?当然没有人真正为所有构造函数中的同一成员添加冗余初始化程序,是吗?

编辑: 我希望我能在这里选择两个答案.Bleep Bloop推荐的智能指针似乎是最优秀的方法,并获得了最多的投票.但是由于我在工作中实际上并没有使用智能指针,所以我选择了最不具有智能指针的说明性答案作为答案.

c++ pointers

18
推荐指数
2
解决办法
3万
查看次数

在C中获取指针的大小

如何使用C获取指针的大小sizeof?我想malloc一些内存来存储指针(不是指向的值).

c pointers sizeof

18
推荐指数
2
解决办法
5万
查看次数

为什么只有char*是<Bad Ptr>,而不是其他数据类型?

我正在学习C++中的指针.例如,在初始化指针时

double* pvalue1 = nullptr;//okay
char* pvalue2 = nullptr;  //only this says, "0x00000000 <Bad Ptr>" (in the watch window of Visual C++ 2010)
int* pvalue3 = nullptr;   //okay
Run Code Online (Sandbox Code Playgroud)

为什么只有char类型指针给出Bad Ptr而其他指针类型没有? 在此输入图像描述

我不关心目前的尖端价值观.我没有取消引用它们(这就是为什么上面有这些错误).我只是看着这三个指针的观察窗口.

c++ pointers visual-studio

18
推荐指数
2
解决办法
1837
查看次数