嗨,我尝试了以下代码:
int *a=&matrice[4][0];
cout<<*a<<"\n\n";
int *b;
b = &matrice[4,4];
Run Code Online (Sandbox Code Playgroud)
matrice的定义如下:int matrice[5][5];并且我用一些正常的int值填充它.
第一个赋值有效,但第二个赋值没有错误:
a value of type "int (*)[5]" cannot be assigned to an entity of type "int * " .
我希望他们两个在编译时给我一个错误.
你能解释为什么会有这种不同的行为吗?
表达方式
&matrice[4,4]
Run Code Online (Sandbox Code Playgroud)
不做你所期望的,因为表达
4,4
Run Code Online (Sandbox Code Playgroud)
评估为4.这是逗号运算符的示例,它计算两个操作数并返回第二个操作数.
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |