C语言深度剖析
#include <stdio.h>
intmain(int argc,char * argv[])
{
int a [3][2]={(0,1),(2,3),(4,5)};
int *p;
p=a [0];
printf("%d",p[0]);
}
请问打印出来的结果是多少?
为什么会是1呢?
{}与()有什么区别呢?
为什么问题会出现在括号上呢?
[解决办法]
(0,1)
逗号表达式,值是最后一个
[解决办法]
楼主搜:逗号表达式
printf("%d %d %d",p[0], p[1], p[2]);会输出1 3 5
[解决办法]
#include <stdio.h>
int main(int argc,char * argv[])
{
int a[3][2]={{0,1},{2,3},{4,5}};
int *p;
p=a [0];
printf("%d",p[0]);
}
#include <stdio.h>
int main(int argc,char * argv[])
{
int a[3][2]={(0,1),(2,3),(4,5)};
int *p;
p=a [0];
for(int i=0;i<3;i++){
for(int j=0;j<2;j++)
printf("%d",a[i][j]);
}
}
[解决办法]
(0,1)
逗号表达式
{0.1}
才是赋两个值
[解决办法]
#include <stdio.h>
int main(int argc,char * argv[])
{
int a[5][5]={{1,2,3,4,5},{21,22,23,24,25},{31,32,33,34,35},{41,42,43,44,45},{51,52,53,54,55}};
int (*p)[5];
p = a;
printf("%d %d",p[4][2],a[4][2]);
}