C语言
练过几年代码,有备而来
可以有遗憾,但绝不会后悔。
展开
-
关于C/C++中函数参数传递的规则
f(A,B,C);在编译程序中,对函数参数传递的处理是由右向左进行的。因此,先传递的是最右边的参数的值。这个结论在日常使用的时候其实也很难发现有什么具体的区别,但是在编译原理中或者一些偏向于理论的考试中这恰恰是最容易忽视的地方。下面简单举例说明:测试程序:#include<iostream>#include<bits/stdc++.h>using namespace std;int fun(int x,int y);int main(){ int i=1;原创 2022-03-26 20:10:21 · 1496 阅读 · 0 评论 -
关于C和C++中for循环对于中间逗号的判定
for(···;A,B,···;···)虽然学了好久C语言了,但是自己还真是一直没有注意过for循环中间有逗号表达式的时候判定,之前一直都是以为A和B同时满足了才会进行执行。学编译原理,深入理解一些语言的结构的时候才发现了这一点。结论:C语言规定该表达式的值取逗号表达式中最右一个表达式的值。这里加入两段代码进行举例:源码一:#include<iostream>#include<bits/stdc++.h>using namespace std;int main()原创 2022-03-26 19:21:43 · 6860 阅读 · 0 评论 -
回来来看初学C语言的一些有趣的图形的输出
现在再来看那些当初觉得困难的东西,经常都会一笑而过。图1:a.源码:#include<iostream>using namespace std;int main(){ int n; cin>>n; for(int i=1;i<=n;i++) { for(int j=1;j<=n-i;j++) { cout<<" "; } for(int k=1;k<=n;k++) { cout<<"*";.原创 2021-12-26 19:22:13 · 1432 阅读 · 7 评论 -
C语言之double实数的自动四舍五入取整
之前学习C语言的时候一直没有注意到原来double类型的数据在C里通过取不同的小数位数,输出能够实现四舍五入。这里通过一个案例,一看便知:#include<stdio.h>int main(){ double a=0.4735; printf("%lf\n",a); printf("%.0f\n",a); printf("%.1f\n",a); printf("%.2f\n",a); printf("%.3f\n",a); printf("%.4f\n",a);}运行原创 2021-12-24 13:38:03 · 6076 阅读 · 8 评论 -
const的用法以及与define使用的区别
const使用于C语言中,用于定义常变量,即用 const 定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。因此有的时候也称定义的为只读变量。虽然 const 定义的是只读变量,就相当于是定义一个常量。但是只读变量也是变量,所以 const 定义的变量仍然不能作为数组的长度。但是需要注意的是,在 C++ 中可以!C++ 扩展了 const 的含义,在 C++ 中用 const 定义的变量也可作为数组的长度。其实虽说const的用法和define有那么一丝丝相似,但是其实差原创 2021-10-27 18:28:57 · 288 阅读 · 0 评论 -
C语言#define宏定义可能注意不到的地方
#define使用的核心:直接替换我也觉得自己很清楚这一点,但看到这一道输出程序片段结果题,还是懵了。大家也可以在不看我下方答案的情况下,自己做一下,题目如下:#include<stdio.h>#define P 3#define S(a) P*a*aint main(){ int ar; ar=S(3+5); printf("%d\n",ar); return 0;}输出ar的值:嘿嘿,不知道大家有没有跟我掉进同样的坑里,答案是29直接原创 2021-03-23 17:51:15 · 732 阅读 · 2 评论