Stroustrup 5.1指针[英] Stroustrup 5.1 Pointers

问题描述

在本章的开头,我看到了一些陈述我是
无法理解.我知道"指针";接受a的地址
变量,如果我们想将该变量操作为
每个函数都获取其参数的私有副本:

字符 c;

字符** ppc;//"指向指针的指针"有什么用

int* a[15];//为什么必须有"一个数组如果指针"
而不是"int"的数组

int (*fp) (char*);//我们可以通过函数名来调用函数,然后
为什么"指向函数的指针"?在这里.

int* f(char*);//我无法理解这一点.

或者

在这个新手"点"上,我不需要了解这些东西.合二为一
"comp.lang.c++"的档案,我读到这些东西变成了
更容易,一旦开始构建,这样的问题就会消失
现实生活中的软件或使用 C++ 进行一些现实生活中的编码.

推荐答案

arnuld 写道:
:: 在本章的最开始,我看到了一些陈述我是
:: 无法理解.我知道"指针";接受a的地址
:: 变量,如果我们想将该变量操作为
:: 每个函数都获取其参数的私有副本:
::
:: 字符 c;
::
:: 字符** ppc;//"指向指针的指针"有什么用

如果您的变量本身是一个指针,并且您
还是想操纵它.

::
:: int* a[15];//为什么必须有"一个数组如果指针"
:: 代替"int"的数组

它可能很有用.不过不经常.

::
:: int (*fp) (char*);//我们可以通过函数名来调用函数,
:: 那么为什么"指向函数的指针"?在这里.

如果你有一个指向函数的指针,你可以给它分配a的地址
类似的功能.这让你可以改变你调用的函数.

也不经常使用.:-)

::
:: int* f(char*);//我无法理解这一点.

你这里有两个指针,一个是函数f的参数,另一个
是f的返回值.

这与 int (*fp)(char*) 不同,其中 fp 是指针,而 int 是
返回类型.这里 ''int*'' 是(非指针)函数 f 返回的内容.

不要太费心.:-)

::
:: 或
::
:: 在这个新手"点",我不需要了解这些东西.合二为一
:: 的"comp.lang.c++";档案,我读到这些东西变成了
:: 更容易,这样的问题一开始就消失了
:: 构建现实生活中的软件或使用
进行一些现实生活中的编码:: C++.

您可能不必知道所有细节.使用或操作 raw
指针在 C++ 代码中并不常见.大部分都可以隐藏在里面
标准容器.
博佩尔松

* 阿努尔德:
在本章的开头,我看到了一些陈述我是
无法理解.我知道"指针";接受a的地址
变量,如果我们想将该变量操作为
每个函数都获取其参数的私有副本:

字符 c;

字符** ppc;//"指向指针的指针"有什么用

int* a[15];//为什么必须有"一个数组如果指针"
而不是"int"的数组

int (*fp) (char*);//我们可以通过函数名来调用函数,然后
为什么"指向函数的指针"?在这里.

int* f(char*);//我无法理解这一点.
除了第一个声明,这些都是指针的例子.

问他们是为了什么是没有意义的,就像问是没有意义的一样
上面''c''的用途是什么.

或许文中有一些示例代码或文字示例参考
上面的声明,或者它们只是例子.

--
A:因为它打乱了人们正常阅读文本的顺序.
问:为什么会这么糟糕?
A:顶帖.
问:usenet 和电子邮件中最烦人的事情是什么?

3 月 26 日上午 10:34,"arnuld"<geek.arn...@gmail.com 写道:
在这个新手"点"上,我不需要了解这些东西.合二为一
"comp.lang.c++"的档案,我读到这些东西变成了
更容易,一旦开始构建,这样的问题就会消失
现实生活中的软件或使用 C++ 进行一些现实生活中的编码.
恕我直言,TC++PL 作为参考比作为教程更好.
根据您的背景,考虑 Glassborow 的任何一本书
或者也许是 Koening &Moo 的加速 C++.


本文地址:https://www.itbaoku.cn/post/1050415.html