C语言经典100例45
题目41
题目: 学习static定义静态变量的用法 #include void func() { int x = 0; static int xx = 0; printf("x is %d ",x++); printf("xx is %d ",xx++); //++在后面会在输出后累加 } int main() { for(int i = 1;i <= 3;i++) { printf("第%d次 ",i); func(); } // static是将变量定义为了静态变量,可以理解为不会每次释放?( } 题目42
题目: 学习使用auto定义变量的用法 #include int main() { int x = 2; for(int i = 1;i <= 3;i++) { printf("x is %d ",x++); auto int x = 1; /* 这里相当于定义一个新的x 他的作用域不会影响到上面的x的作用域 */ printf("auto_x is %d ",x++); } } 题目43
题目: 学习使用static的另一用法。 #include int main() { int x = 5; for(int i = 1;i <= 3;i++) { printf("x is %d ",x++); static int x = 1; /*这里的x是什么样子的呢?*/ printf("static_x is %d ",x++); } } 题目44
题目: 学习使用external的用法
这里使用的是extern,好像没有external这个?( #include int a,b,c; extern int a; void add() { int a = 3; //extern int a;//注释掉上一行这样写呢? c = a + b; } int main() { a = b = 4; add(); printf("c is %d",c); } /*可参考https://www.cnblogs.com/fah936861121/p/6679915.html*/ 题目45
题目: 学习使用register定义变量的方法。 #include #include //这里帮大家写了计算程序运行时间的部分 int main() { /*在C语言中的register修饰的变量表示将此变量存储在CPU的寄存器中, 由于CPU访问寄存器比访问内存快很多,可以大大提高运算速度。"*/ clock_t start_time,end_time; start_time = clock(); /* 这一点代码是体现不出来register的优化的, 以后本人相关代码会继续使用R ,即register*/ { //这个花括号括起来的部分放执行的代码 long long sum = 0; for(register int i = 1 ;i <= 10000000;i++) sum += i; printf("%lld ",sum); } end_time = clock(); printf("%lf", (double)(end_time - start_time) / CLOCKS_PER_SEC); }