一些看起来很特殊的for循环代码,以及sizeof和strlen代码运行机制,还有#define

来源:互联网 发布:java程序员适合mac吗 编辑:程序博客网 时间:2024/05/21 09:21

#include<stdio.h>

#include<string.h>

 

int main1()

{

int i;

for(i=1;i+1;i++)

{

if(i>4)         //i=5的时候进入语句

{

printf(“%d\n”,i++)  //++在后:先打印后++

break;

}

}

printf(“%d\n”,i++)  //++在后,先打印后++

return 0;

}

 

int main2()

{

int i,k;

for(i=0;k=1,k=-1;i++,k++)

printf(“.......................\n”); //因为for语句没有判断循环跳出的语句 所以这句话一直执行

}

 

 

#define sor(x) x*x  //宏函数,只替换不计算 所以sor(a+b)==a+b*a+b

int main3()

{

int a;

int k=3;

a=++sor(k+1);     //a=++k+1*k+1  ++前置为先++改变k的值后计算 所以a=4+1*4+1

printf(“%d\n”,a);

return 0;

}

 

 

int main4()

{

int i=1;

printf(“%d,%d\n”,sizeof(++i),i);  //sizeof(),()内的内容只做计算不做运算,也就是++在此时

//未生效,不运算

return 0;

}

阅读全文
0 0