|
1
3
不仅仅是指针和数组: How to interpret complex C/C++ declarations :
你的例子是:
是指向char的5个指针的数组。 |
|
|
2
3
CDECL是一个很适合这种情况的程序。(尤其是在混合中添加函数指针时!)
|
|
|
3
2
很久以前,我从杂志上的一篇文章中学到了顺时针/螺旋法则。以下是一篇介绍该技术的在线文章: 这对我很有帮助,尽管我仍在努力处理一些有时会遇到的基于模板的可怕声明。 |
|
|
4
2
在C/C++中读取一个类型的一般过程是:
在最初的语法哲学中,您的示例应该写为“char*array[5]”,标识符是“array”,运算符是[](index),然后是*(取消引用)。 然后,声明读起来像一个契约,“如果您按照这个顺序应用这些操作符,那么您将得到一个最终类型的对象”。 在您的例子中,完整的句子是“如果您索引变量”array“,然后取消对结果表达式的引用,您将得到一个char”。 您也可以这样认为:“如果您对变量“array”进行索引,那么您将得到一个对象,这样,如果您取消对它的引用,您将得到一个字符。” 技巧主要是跟踪这样一个事实,即[]和()的优先级高于*。可以使用括号控制运算符顺序,就像对正则表达式一样。 |
|
|
5
1
char*是类型,您有5个数组。 |
|
|
6
1
[]的优先级高于*,这就是为什么它是指针数组,而不是相反。 |
|
|
7
1
您总是从右向左读取指针,将“*”解释为指针。 例如char**a[5]是一个指向字符指针的5个指针数组… |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |
|
|
Geremia · 2D NumPy数组+1D数组? 1 年前 |
|
|
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 1 年前 |
|
|
Paul Williams · 迭代数组时输出有问题 1 年前 |