相关疑难解决方法(0)

C中的箭头运算符( - >)用法

我目前正在通过阅读一本名为"21天自学C"的好初学者的书来学习C(我已经学习了Java和C#,所以我的动作速度要快得多).我正在阅读有关指针的章节,而 - >(箭头)操作符出现时没有解释.我认为它用于调用成员和函数(比如.(点)运算符,但是用于指针而不是成员).但我不完全确定.我可以获得解释和代码示例吗?

c syntax pointers

245
推荐指数
7
解决办法
44万
查看次数

103
推荐指数
5
解决办法
8万
查看次数

"::"之间有什么区别." 和c ++中的" - >"

可能重复:
我何时使用点,箭头或双冒号来引用C++中的类成员?

我创建了一个名为Kwadrat的类,里面有三个int字段.代码块给我意见,我可以进入由对象的字段::,.以及->.箭头是唯一有效的箭头,但为什么呢?这三者有什么区别?

#include <iostream>

using namespace std;

class Kwadrat{
public:
int val1, val2, val3;
    Kwadrat(int val1, int val2, int val3)
    {
        this->val1 = val1;
        //this.val2 = val2;
        //this::val3 = val3;
    }
};

int main()
{
    Kwadrat* kwadrat = new Kwadrat(1,2,3);
    cout<<kwadrat->val1<<endl;
    cout<<kwadrat->val2<<endl;
    cout<<kwadrat->val3<<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ reference class

76
推荐指数
5
解决办法
13万
查看次数

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

我可以使用' - >'运算符通过指针访问对象指针吗?

我刚刚开始学习Qt教程,而且我也是初学者级的C++.在Qt教程中,有一个使用statement来设置按钮文本的示例:

ui->pushButton->setText("Hello");
Run Code Online (Sandbox Code Playgroud)

我知道我们可以使用->operator来允许指针访问类的成员.在这种情况下,pushButton->setText("Hello")但我只是不明白其含义ui->pushButton,我搜索了一些解答说明了ui持有的参考资料pushButton,但是如何做到这一点呢?pushButton是指向对象的指针,不是类的成员,我们可以使用->将对象地址放到ui指针中吗?

抱歉我的英语不好,我可能会困惑你.我希望有人能提前给我一个明确的解释.

c++ qt pointers

8
推荐指数
1
解决办法
241
查看次数

什么是 - >和之间差异的理由.在c/c ++中?

可能重复:
C++:ptr-> hello();/*VERSUS*/(*ptr).hello();
为什么C区分 - >和.?

我知道成员运算符(.)和指针运算符( - >)之间的区别.

为什么C设计人员为此访问创建了不同的运算符?为什么编译器不能自己搞清楚?

如果你总是使用一个.是否存在模糊的情况,无论你是指成员还是指针成员?

编辑:我不是在寻找"(*a).b"语法.我问为什么设计师不允许你用"ab"代替"a-> b"?

c c++ standards

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

" - >"和"."之间的区别.在C.

可能重复:C中的
箭头运算符( - >)用法

我想弄清楚"."之间的区别.和" - >"C语言中的数据访问风格.例如.

struct div{
    int quo;
    int rem;
};
Run Code Online (Sandbox Code Playgroud)

1)使用" - >"

struct div *d = malloc(sizeof(struct div));
d->quo = 8/3;
d->rem = 8%3;
printf("Answer:\n\t Quotient = %d\n\t Remainder = %d\n-----------\n",d->quo,d->rem);
Run Code Online (Sandbox Code Playgroud)

2)使用"."

struct div d;
d.quo = 8/3;
d.rem = 8%3;
printf("Answer:\n\t Quotient = %d\n\t Remainder = %d\n-----------\n",d.quo,d.rem);
Run Code Online (Sandbox Code Playgroud)

我得到两个案件的相同输出.

答案:商数= 2剩余= 2

这两种方法如何在内部运作?什么时候应该使用哪一个?我尝试在互联网上搜索但没有多大帮助.任何相关链接也表示赞赏.

他们在内存中的存储也有什么区别吗?

c

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

- >和之间的区别.成员选择运营商

可能重复:
c ++中(.)点运算符和( - >)箭头之间的区别是什么

在这本书中,我有我学习指针和我刚刚得到有关OOP的章节进行(吐在地面上)反正它告诉我,我可以用一个成员选择操作这样的( - >).它说这就像"." 除了指向对象而不是成员对象.什么是差异,它看起来像是以同样的方式使用...

c++ class operators

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

什么时候用箭头,什么时候用点?

我读过它并且我大部分都明白它,但是这种情况让我有点困惑。我们为什么不使用鼠标操作->scanf?我知道点用于对象,箭头用于指针,但在这里,g是指向结构的指针。

DOCUMENT *take(int *pn){
        DOCUMENT *g;
        printf("How much documents? ");
        scanf("%d", pn);
        g = (DOCUMENT *)calloc(*pn, sizeof(DOCUMENT));
        for (int i = 0; i < *pn; i++)
        {
            printf("Type in author, name of document and number of pages: ");
            scanf("%s %s %d", g[i].author, g[i].name, &g[i].s );
        }
        return g;
    }
Run Code Online (Sandbox Code Playgroud)

c struct pointers

3
推荐指数
1
解决办法
70
查看次数

C++ 取消引用和使用点运算符与使用箭头运算符之间有区别吗

假设我有以下变量:

MyObject* obj = ...;
Run Code Online (Sandbox Code Playgroud)

如果此对象具有字段foo,则有两种访问方式:

  1. obj->foo
  2. (*obj).foo

使用一种方法与另一种方法之间是否有任何区别。或者第一种方法只是第二种方法的语法糖?

我在想也许第一个可能会导致对象的复制构造函数被调用,因为它现在持有该值。

c++ dereference

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

标签 统计

c++ ×7

c ×4

pointers ×4

class ×2

dereference ×1

operators ×1

qt ×1

reference ×1

standards ×1

struct ×1

syntax ×1