相关疑难解决方法(0)

理解指针有什么障碍,克服它们可以做些什么?

对于C或C++中的许多新的,甚至是老的大学生来说,为什么指针会成为混乱的主要因素?是否有任何工具或思维过程可以帮助您理解指针在变量,函数和更高级别的工作方式?

有什么好的做法可以让人达到"啊哈,我明白了"的水平,而不会让他们陷入整体概念的困境?基本上,钻取方案.

c c++ pointers

443
推荐指数
16
解决办法
7万
查看次数

为什么要使用指针?

我知道这是一个非常基本的问题,但是我在用高级语言编写一些项目之后开始使用一些基本的C++编程.

基本上我有三个问题:

  1. 为什么使用指针超过正常变量?
  2. 我应该何时何地使用指针?
  3. 你如何使用指针与数组?

c c++ pointers

344
推荐指数
14
解决办法
23万
查看次数

指向指针的指针如何在C中工作?

如何指针指针在C中工作?你什么时候使用它们?

c

164
推荐指数
11
解决办法
12万
查看次数

为什么`&`(&符号)放在一些方法参数前面?

我不知道,为什么在NSError之前,如下所示,我们是否应该:&error而不是error

例如

NSArray *result = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
Run Code Online (Sandbox Code Playgroud)

希望你能解释一下,这也总是这样或者只是在某些情况下需要这个吗?谢谢.

iphone objective-c nserror

33
推荐指数
3
解决办法
5923
查看次数

在C++函数签名中使用&运算符

我目前正在阅读Accelerated C++,我意识到我并不真正了解函数签名的工作原理.

int* ptr=#
Run Code Online (Sandbox Code Playgroud)

意味着ptr现在将地址保存为num,但这意味着什么?

void DoSomething(string& str)
Run Code Online (Sandbox Code Playgroud)

从我的理解,这是一个变量的引用传递(这意味着传递地址),但当我这样做

void DoSomething(string& str)
{
  string copy=str;
}
Run Code Online (Sandbox Code Playgroud)

它创造的是str的副本.我认为它会做的是引发错误,因为我正在尝试分配一个指向变量的指针.

这里发生了什么?在函数调用中使用*和&是什么意思?

c++ pass-by-reference

24
推荐指数
4
解决办法
5万
查看次数

如何在C中处理指针?

我是C的新手,我在学习指针方面遇到了一些问题.我试验了交换,这就是我能用它做的所有:)我知道每个变量在内存单元中都有自己的地址(这是我的讲师告诉我们的),每个变量的值都可以通过转到它的相关地址来获得获取存储在其中的值.我见过一些函数头文件,例如:

int doSomething(char **hihi);
Run Code Online (Sandbox Code Playgroud)

我的头很困惑.我知道指针也是一个变量,它只在地址信息中存储地址信息.我读到它们与数组密切相关

arr = &arr[0];
Run Code Online (Sandbox Code Playgroud)

这就是我对指针的了解,我想知道如何加深我对指针的看法.我搜索网,我找不到任何有用的备忘单覆盖指针.而且我也想知道它们为什么如此重要,有没有办法在不使用printf()打印地址(p)和值(\*p)的情况下理解实际发生了什么?

c pointers

7
推荐指数
2
解决办法
1013
查看次数

为什么在 C 中取消引用引用?在 * 旁边使用 &

我看着这个这个这个这个等等。

问题是

EdX 上的基本 C 编程 MOOC 展示了如何在通过指针传递结构时访问函数内结构的成员。他们到底为什么在&旁边使用*???

他们展示: scanf("%lf", &(*studptr).aveGrade);

为什么不只studptr.aveGrade在 scanf 中使用?

撇开单独的问题,“为什么要使用 scanf”

(被要求提供完整的例子)

void readStudent(struct student *studptr) {
    print("\nEnter a new student record: \n");
    printf("First name: ");
    scanf("%s", (*studptr).firstName);
    printf("Last name: ");
    scanf("%s", (*studptr).lastName);
    printf("Birth year: ");
    scanf("%d", &(*studptr).birthYear);
    printf("Average grade: ");
    scanf("%lf", &(*studptr).aveGrade);
}
Run Code Online (Sandbox Code Playgroud)

c pointers scanf pass-by-reference ampersand

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

C中的星号有什么作用?

C中的*是什么意思?我看到它在声明 char 或 FILE 变量时使用 ( char = *test) 这如何改变变量的行为方式?

c

0
推荐指数
2
解决办法
7575
查看次数

标签 统计

c ×6

pointers ×4

c++ ×3

pass-by-reference ×2

ampersand ×1

iphone ×1

nserror ×1

objective-c ×1

scanf ×1