![]() |
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个指针数组… |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |