![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
C语言的基础知识
小白乔学技术
物流工程+工业工程
展开
-
高端的printf函数只需要简单的修改。。。我信你个鬼,糟老头子坏得很
热身运动,先了解一下变参函数——va族可变参数函数就是输入的参数的个数是可变的获得a往后的参数列表——va_list类型的变量,表示可变参数列表类型,实际上就是一个char指针定位a后面第一个参数的位置——va_ start函数,用于获取函数参数列表中可变参数的首指针(获取函数可变参数列表)获取下一个可变参数列表中的参数——va_arg函数,用于获取当前a所指的可变参数并将a指针移向下一可变参数结束整个获取可变参数列表的动作——va_end函数,用于结束对可变参数的处理对可变参数列表的处理过程一原创 2020-10-31 17:21:51 · 264 阅读 · 0 评论 -
如何让数据既能被共享又设有保护套
1、计算圆的面积auto f=[](double radius){return radius*radius*3.14}这里使用了 C++ 11 提供的自动类型推导和lambda 表达式这里的3.14显然是不可靠的,一方面代码多了换值麻烦,另一方面也不能直观的表达这就是派解决方法一:C 语言提供预定义功能但是预定义也有自己的局限,如不能进行类型检查解决方法二:const关键字(作用是定义一个常量)以上两种写法是相同的当一个常量被定义之后,它的值就不能被修改了——所以必须在常量定义的时候就原创 2020-10-25 11:00:38 · 96 阅读 · 0 评论 -
【C语言】数组、字符串与指针的爱恨情仇
基础类型数据 热身~基础类型数据在使用scanf时需要使用地址符&获取用户从电脑上输入的东东定义一个整型的指针变量,即 int * p;将获取到的整型数据 a 的值的地址赋给指针 p ,即 p = &a;【*】符号代表取值,所以 %d 输出打印时 a 与 * p输出的都是 a 的值【&】符号代表取址,所以 %p 输出打印时 &a 与 p 输出的都是 a 的地址复合类型的数据 来喽~1、数组与字符串数组元素的指针就是数组元素的地址(1)一维数原创 2020-10-15 03:11:59 · 374 阅读 · 0 评论 -
【C语言】小题第二弹来喽~
1、输出最长的名字一个班级中有n个学生,每个学生有一个名字。班主任希望知道学生中名字最长(名字中的一个空格长度计为1)的学生是谁。输入格式你的程序接受的输入的第一行是一个整数n,表示学生的总数。之后的n行,每行会接受一个学生的名字(可能有空格)。学生的名字不超过100个字符。输出格式输出n位学生中最长的学生名字(如果有多个名字一样长的学生,输出第一个。...原创 2020-12-02 19:17:35 · 1117 阅读 · 5 评论 -
【C语言】小白乔做的一些小题,不好的地方来指教哦
这些都是按照我自己的理解做的,新手上路,有不完善的地方也有方法笨拙的地方,有问题可以留言一起交流《1》青年歌手参加歌曲大奖,有5个评委打分,写一个求平均分的程序,但是要求去除最高分和最低分《2》输入数字,输出星期几《3》在屏幕上输出如下图形 键盘输入n,比如输入3如下 * * * * * *《4》一球从100米高度自由落下,每次落地后反跳回原高666度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?原创 2020-09-12 10:19:15 · 258 阅读 · 0 评论 -
用vim编写代码并编译输出
1、首先在Linux系统里创建一个文件夹用来存放我们的东东使用【mkdir 要创建的文件夹名称】 指令创建一个文件夹使用【tree】指令可以看到我们创建好的文件夹此外删除文件夹需要使用【rm -r 文件夹名】指令删除文件夹下的文件可以直接使用【rm 文件名】指令2、写下你的代码首先使用【cd 要存放文件的文件夹】命令到达我们接下来编写的文件要存放的地方建立一个存放我们编程的文件,并命名为1.c,使用指令【vim 1.c】,然后就来到了以下编辑界面,此时为普通模式首先点击【i】进入原创 2020-10-15 15:05:13 · 2646 阅读 · 0 评论 -
每周来点C语言零碎小知识(6)
1、time.htime.h是C/C++中的日期和时间头文件。用于需要时间方面的函数。(1)获取时间的方式time_t time(time_t* timer),,得到从标准计时点(一般是1970年1月1日午夜)到当前时间的秒数。clock_t clock(void),,得到从程序启动到此次函数调用时累计的毫秒数。...原创 2020-11-04 15:48:02 · 132 阅读 · 0 评论 -
每周来点C语言零碎小知识(5)
1、~ (~ 0<<4)和~(1<<4)分别等于多少~按位取反<<左移运算0的二进制为00000000,那么~0就为111111110<<4就是将~0的二进制码向左移动4位,右边补0,即得11110000(0<<4)就是将上一步得到的二进制码(11110000)取反,得00001111同理1的二进制为00000001,1<<4为00010000,~(1<<4)为11101111...原创 2020-10-05 23:03:18 · 531 阅读 · 0 评论 -
每周来点C语言零碎小知识(4)
希望勤能补拙!小白学C语言道阻且长,欢迎找茬,同学习共交流1、测量并打印出变量类型的长度: char , int, long, short, float, double, unsigned char ,unsigned int## 1、~ (~ 0<<4)和~(1<<4)分别等于多少~按位取反<<左移运算0的二进制为00000000,那么~0就为111111110<<4就是将~0的二进制码向左移动4位,右边补0,即得11110000(0<原创 2020-09-17 21:30:49 · 252 阅读 · 0 评论 -
每周来点C语言零碎小知识(3)
希望勤能补拙!小白学C语言道阻且长,欢迎找茬,同学习共交流1、argc与argv一般这样出现:之前有些编译器允许将 main() 的返回类型声明为void,这已不再是合法的C++现在int的main(int argc, char *argv[ ], char **env)才是UNIX和Linux中的标准写法。argc: 整数,用来统计你运行程序时送给main函数的命令行参数的个数argv[ ]: 指针数组,用来存放指向你的字符串参数的指针,每一个元素指向一个参数假设程序的名称为star原创 2020-09-17 10:15:18 · 162 阅读 · 0 评论 -
每周来点C语言零碎小知识(2)
小白学C语言道阻且长,欢迎找茬,同学习共交流1、“%12.9f\n”的意思浮点宽度为12位小数点占1位,后面保留9位小数前面不足12位时用空格补足原创 2020-09-15 22:41:08 · 210 阅读 · 0 评论 -
每周来点C语言零碎小知识(1)
@小白乔学编程小白学C语言道阻且长,欢迎找茬,同学习共交流1、scanf函数scanf英语的意思是格式化输入;格式输入;输入函数。C语言中是标准库函数,也是输入函数的一种,与printf函数差不多。主要用来接收用户输入的数据,按用户指定的格式从键盘上把数据输入到指定的变量之中。举个例子:int a = 10;scanf("%d", &a); 它代表:按%d的格式(%是格式说明的起始符号,d代表十进制整数),将用户输入的数据赋值给&a指向的内存单元,也就是将用户输入的数转换为i原创 2020-09-05 14:01:36 · 205 阅读 · 0 评论 -
C语言多模块程序及Makefile那些子事儿
在刚开始学习C语言的时候,当程序只有一个main.c文件时,可以在命令行中通过gcc -o program main. c对单个代码文件进行编译,生成可执行文件 program,并且通过./ program运行编译生成的程序。相比于单个文件、单一功能的程序,当程序有多个模块时,问题就开始变得复杂了。对毎一个模块会首先编译出毎个模块对应的*.。目标代码文件。会将一个set.c文件编译成一个set.o的目标代码文件。这里的-c表示生成目标代码文件。-o与之前单文件的时候一样,在它之后会写明被生成的文件的名称。原创 2020-11-11 22:05:24 · 585 阅读 · 0 评论 -
C语言命令行参数、文件操作及调试代码那些子事儿
命令行参数在之前的学习中,main函数—般都是没有参数的,对应的,在运行时,—般就是直接输入可执行的程序文件名(例如. / main )但是,实际上main函数是可以有参数的。可以将任何过去无参数的main函数替换成下面这种有参数的main函数int main(int argc,char **argv){ //......}在这里,main函数有两个参数第一个参数是整数型,会传入命令行参数的个数,程序运行时就可以接收到。第二个参数是char **,其中储存了用户从命令行传递进来的参原创 2020-11-12 14:46:29 · 2717 阅读 · 0 评论 -
C语言printf家族的那些子事儿
1、printf是有返回值的你咋造吗?返回值是输出的长度#include <stdio.h>{ int n; scanf("%d",&n); n=printf("%d",n); printf(" has %d digits\n",n); return 0;}若输入“321”,则会输出“ 321 has 3 digits”增强理解2、scanf接收空格的方法#include <stdio.h>{ int n;原创 2020-11-27 11:31:36 · 175 阅读 · 0 评论 -
C语言位运算那些子事儿
1、按位取反就是将每一位是1的变成0,是0的变成1。运算符为~。二进制的0010按位取反为会得到1101二进制的0000按位取反后会得到1111在计算机中,数值以补码来表示。所有的位运算也都要先将数值从原码被变为补码后才能进行。补码的最左位为符号位:正数的补码最左位的符号位为0,其余位为数的原码二进制表示。负数的补码最左位的符号位为1,其余位为原码二进制每位取反后再加1。而取反操作都是通过操作补码形式存储在计算机内存中的每一位完成的。如果要用人脑计算一个十进制整数在计算机中被按位取反的结果,原创 2020-10-26 16:35:57 · 487 阅读 · 0 评论 -
C语言指针的那些子事儿
1、概念理解指针是一个地址,一个变量的地址就是该变量的指针指针变量的值是地址,即指针变量是存放指针地址的东东以上int *pointer就是一个int型的指针,pointer是指向int型变量的指针变量-----类型说明符 * 变量名;& i 就是取 i 的地址,pointer = & i 就是取 i 的地址将其值赋给pointer2、指针与scanfC语言没有字符串概念,只有字符数组,不能自动分配空间,要存放数据,必须预先定义存储空间的大小scanf能赋值字符数组,但原创 2020-10-26 16:19:11 · 180 阅读 · 0 评论 -
C语言结构体、枚举、共用体那些子事儿
代码练习用结构体变量做函数参数:用指向结构体变量的指针做实参:链表原创 2020-09-26 15:59:57 · 319 阅读 · 0 评论 -
C语言预处理的那些子事儿
1、理解宏定义2、define与typedef3、不用循环和递归,打印0~999原创 2020-09-19 22:17:45 · 159 阅读 · 0 评论 -
C语言函数的那些子事儿
1、初级的函数设定及调用输出(1)(2)2、返回值类型与函数类型不同会发生什么3、函数的调用方式有自左向右,也有自右向左以下面这个为例,先不看输出若自左至右,则函数调用相当于 f (2,3)若自右向左,则函数调用相当于 f (3,3)然后就可以理解输出结果了4、函数声明与调用位置这两张图上的操作可以看出:当声明在前面,中间已经调用函数,则需要在后面定义函数当函数定义已经放到前面,则后面在调用函数之前不加声明也可以...原创 2020-09-14 22:53:55 · 301 阅读 · 0 评论 -
C语言数组的那些子事儿
上周发布零碎小知识不小心删掉了,,,心痛到无以复加,,,失去的找不回来,,来点新的吧~1、数组的赋值第一种,用赋值语句对数组元素逐个赋值,小白才会写的东东,很麻烦第二种,初始化赋值或动态赋值...原创 2020-09-14 15:26:05 · 363 阅读 · 0 评论