简单的整理,仅供参考:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、虚拟空间、营销软件、网站建设、德令哈网站维护、网站推广。
#include stdio.h
#define BUFFER_LEN 3
#define BUFFER_SIZE 64
void getData( char buffer[BUFFER_LEN][BUFFER_SIZE],size_t size,int *repeatTimes )
{
printf("plz,input 3 strings,e.1251511 212151 564646165\n");
scanf_s("%s %s %s",buffer[0],size,buffer[1],size,buffer[2],size ) ;
printf("plz,input your repeat times:");
scanf_s("%d",repeatTimes );
}
void saveInfo( const char *filePath, char buffer[BUFFER_LEN][BUFFER_SIZE],int repeatTimes)
{
FILE *pFile = NULL;;
if( fopen_s(pFile,filePath,"w+")!=EOF)
{
for( int i=0;irepeatTimes;++i )
{
if( i != repeatTimes-1 )
{
if( fprintf_s(pFile,"%s,%s,%s,",buffer[0],buffer[1],buffer[2])==EOF )
{
printf("save data error\n");
}
}
else if( fprintf_s(pFile,"%s,%s,%s",buffer[0],buffer[1],buffer[2])==EOF )
{
printf("save data error\n");
}
}
fclose(pFile);
}
}
void repeatSaveData()
{
char cmd = 0;
char buffer[BUFFER_LEN][BUFFER_SIZE]={0};
int repeatTimes = 0;
do{
fflush(stdin);
getData(buffer,BUFFER_SIZE,repeatTimes);
printf("check your input string and repeat times:\n");
for(int i =0;iBUFFER_LEN;++i )
{
printf("%s\n",buffer[i]);
}
printf("repeat %d times! ture:1,reinput:0\n",repeatTimes);
fflush(stdin);
while(true)
{
cmd = getchar();
if( cmd=='1'||cmd =='0' ) break;
}
}while(cmd=='0');
saveInfo("r.txt",buffer,repeatTimes);
}
int main(int argc, char* argv[])
{
repeatSaveData();
return 0;
}
(1)printf("%d", i++); 后缀,表达式里用 i, 出了表达式 自增1,故,分解为: printf("%d", i); i=i+1;
(2) printf("%d", ++i); 前缀,先自增,后用于表达式,故,分解为: i=i+1; printf("%d", i);
(3)(4) 同理,printf("%d", i--); 分解为:printf("%d", i); i=i-1;
printf("%d", --i); 分解为: i=i-1; printf("%d", i);
把分解后的语句组合起来,就可看出,输出为 40 42 42 40
计算:从右往左,并输出到“缓冲区”。
1、缓冲区是一堆栈
2、第一步:处理后面的“i--”。8进入缓冲区,i=7。缓冲区:8 -(指针)
第二步:处理“i++”。7进入缓冲区,i=8。缓冲区:7 8-
第三步:处理”--i“。8进入缓冲区,i=7.缓冲区:8 7 8
第四步:处理“++i” 先自增1,然后8进入缓冲区,i=8 .缓冲区: 8 8 7 8
3、输出缓冲区数据(栈规则):8 8 7 8
另外自增 、自减 、还可能和编译器有关系 。
扩展资料:
后缀表达式 2级
postfix-expression [ expression ],数组下标运算。
postfix-expression ( argument-expression-list),函数调用,括号内的参数可选。
postfix-expression . identifier,成员访问,
postfix-expression - identifier,成员访问,-号之前应为指针。
postfix-expression ++,后缀自增
postfix-expression --,后缀自减
( type-name ) { initializer-list }
( type-name ) { initializer-list , } 复合初始化,C99后新增。
参考资料:百度百科-C语言运算符
数组a[i]没有初始化,所以它的初始值是不确定的,你需要先declare比如:a[10] = {0} or a[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} or a[0] = 0;a[1] = 0;a[2] = 0;a[3] = 0;a[4] = 0;a[5] = 0;a[6] = 0;a[7] = 0;a[8] = 0;a[9] = 0;
--y,++x,是先+1、-1,后计算表达式;而z--是先计算表达式,后减1
所以:计算顺序:
y=y-1,结果y=24
x=x+1,结果x=5
Z保持原值,z=2
所以:(--y/++x)*z-- = (24/5)*2 = 4*2 = 8(暂存)
计算完后,Z=z+1=3;
然后,再执行z=8(将刚刚计算的Z=3覆盖)
注意:24/5,取整,结果是4