跪求C++大神,我是小新手

ugly[i]==ugly[c]*5?c++:1;是什么意思

ugly[i]==ugly[c]*5?c++:1;
是不是ugly[i]=ugly[c]*5?c++:1
等价于
if(ugly[c]*5!=0)//不等于0
{ugly[i]=c;c=c+1;}
else
ugly[i]=1;

ugly[i]==ugly[c]*5?c++:1;这是个三元表达式变形
#include "stdafx.h"
#include
int main(int argc,char* argv[])
{
int ugly[100]={0};
int p,i=5,c=15;
p = ugly[i]==ugly[c]*5?c++:1;//如果ugly[i]等于ugly[c]*5则p=c++;否则p=1;
printf("ugly[%d]=%d\n",i,ugly[i]);//打印ugly[5]的值;
printf("ugly[%d]=%d\n",c,ugly[c]);//打印ugly[16]的值
printf("p=%d\n",p);
return 0;

}