
C语言
文章平均质量分 91
C基础知识分享
Sup_lz
坚持热爱,永远都在奔跑。
展开
-
makefile生成*.d依赖文件,解决“只修改.h头文件,包含了该头文件的.c文件不重新编译的问题”
但在我们前面的makefile中,main.o的依赖文件只有main.c(makefile的9~10行),config.h并没有体现在我们的依赖关系中,所以编译器识别不了config.h的修改。我们可以看到,在只更改了config.h后,运行make时,编译器重新生成了main.o目标文件,所以我们对.h文件的修改,就更新到了最后的可执行文件中。在接下来的操作中,我会通过改动config.h中的宏定义,来控制main.c中的输出。-MD所输出的关于main.c的依赖关系的文件,输出在main.d中。原创 2022-10-29 17:59:57 · 3070 阅读 · 0 评论 -
C语言extern和static关键字详解
在讲extern和static关键字前,先讲几点相关的基础知识——作用域、存储类型、链接属性。这是几个相关性强,且容易混淆的概念。如果这几个概念理解了,再理解extern和static关键字的用法,就很容易。...原创 2022-07-17 21:43:37 · 918 阅读 · 0 评论 -
VC++6.0中取消Ctrl+F的查找标记
Ctrl+Shift+F2原创 2019-07-11 19:11:21 · 1511 阅读 · 0 评论 -
数据结构——栈的应用(表达式求值)(C语言)
char Precede(char t1, char t2)函数用于输出t1,t2两个运算符的优先级(t1为先出现的运算符(已经压入栈OPTR中),t2为后出现的运算符)char Precede(char t1, char t2){ int i,j; char pre[][7]={ //运算符之间的优先级制作成一张表格 {'>原创 2018-04-16 00:13:13 · 25503 阅读 · 6 评论 -
用memset()初始化非字符内存
函数原型: void memset(void *s, int ch, size_t n);函数描述:将s中当前位置后面的n个字节用ch替换,并返回s。注意:由于memset是按字节对内存进行初始化的(按字节的意思就是,要替换n个字节,就要用ch去替换n次,也就是ch只取一个字节(8位二进制位), 对s的后n个字节,逐个替换)。正因为这样的工作方式,导致ch的取值范围为:0~255。所以对in...原创 2019-03-25 18:56:20 · 437 阅读 · 0 评论 -
指针作为参数的常见错误
注意(指针传递的误区):通过指针传递参数时,最大的忌讳就是以为 只要参数是指针就万事大吉了。实际上,应该首先确定要修改的变量的类型,然后在将其地址作为参数。如果要修改的变量本身就是指针,就应该将该指针的地址作为参数,此时的形参类型是指向指针的指针。原创 2019-02-28 18:16:50 · 895 阅读 · 0 评论 -
杭电oj2058
The sum problemTime Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 32853 Accepted Submission(s): 9775Problem DescriptionGiven a sequence 1,2,...原创 2019-01-17 11:28:43 · 831 阅读 · 0 评论 -
杭电oj2050——折线分割平面
我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。Input输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量。Output对于每个测试实例,请输出平面的最大分割数,每...原创 2019-01-11 16:50:21 · 646 阅读 · 0 评论 -
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
Problem Description有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?Input输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0&lt;n&lt;55),n的含义如题目中描述。n=0表示输入数据的结束,不做处理。Output对于每个测试实例,输出在第n年的时候母牛的数量。...原创 2019-01-03 15:31:51 · 21673 阅读 · 2 评论 -
vc++6.0 中出现Error spawning cl.exe的解决办法
虽然网上一大堆的解决办法,我刚刚遇到了,并且也按着那些办法解决了我的问题,这里我分享一下我在解决过程中的遇到的问题,并且最后成功解决问题。这个过程有一点点繁琐,不过耐心弄完就等解决问题,所以一定要有耐心。 下面开始展示: 首先打开vc++6.0 tools-&amp;gt;options-&amp;gt;Directories 为了避免过程中有单词输错我们这就选取目录就是。 这是以我安...原创 2018-05-18 00:02:13 · 21488 阅读 · 2 评论 -
sscanf和sprintf的用法
函数原型:int sscanf(const char *str, const char *format, …);sscanf()与scanf()作用相似,只不过后者是从键盘中输入,而前者则是从指定的字符串中提取数据。 buffer参数:存储的数据format窗体控件字符串。argument可选自变量sscanf()的返回值是它成功读取的字符串的个数(不过一般不...原创 2018-04-26 23:31:27 · 437 阅读 · 0 评论 -
C语言 函数实现字符串互换
要利用函数实现字符串的互换,首先得弄懂一个概念,看看下面的代码:char *str1 = "hello";char *str2 = "world";第一行代码的意思是定义了一个char*类型的指针,我们将关注的是代码的存储问题,这里str变量是存储于栈区的,而”hello”, 则是存放在字符串常量区,我们应该知道,字符串常量区的数据是不可更改的。所以无法直接更改“hello”和“worl...原创 2018-04-19 23:14:47 · 36258 阅读 · 7 评论 -
C语言 浅谈数组和字符指针的赋值问题
在学习C语言的过程中,总是会遇到很多问题,不管它简单与否,了解到其本质问题就迎刃而解。一下我阐述的知识点,我在编程学习中遇到问题,并查阅资料料所总结的一点东西,可能会有不严谨或错误的地方,希望指出改正。错误一:char str[10];str = &amp;amp;quot;hello&amp;amp;quot;;以上代码,是绝对不被允许的,因为数组除了在声明时的初始化可以成块的把数据赋值给数组。其他任何时候都只能是单个的元素对其...原创 2018-04-24 08:58:28 · 3234 阅读 · 0 评论 -
C语言指针(其实指针没那么神秘)
刚刚开始学习C语言的时候,每当听到指针二字,总是觉得它既复杂又难懂,今天这里看看指针的本质。这里指针的理论概念就不在赘述;首先,为了便于讲解,这里定义了一个全局的整型变量a,定义全局变量是因为它的内存位置固定,方便后面有地址赋值。#include <stdio.h>int a = 100;int main(){ printf("%p\n", &...原创 2018-04-19 01:02:43 · 422 阅读 · 1 评论 -
C语言 实现两张图片的拼接
在Linux中用gcc编译这个代码的逻辑其实蛮简单的,就是用read()函数将对应的要拼接的部分,读入到一块儿缓存中(定义一个数组就行),最后用write()函数将切出来的对应的部分输出到要拼接的图片文件就大功告成。 值得注意的有两点:1、图片在必须用.bmp格式 2、注意你的电脑的图片扫描方式是由上往下的还是由下往上...原创 2018-04-22 19:59:22 · 5566 阅读 · 0 评论 -
C语言 将字符串反序输出
#include <stdio.h>#include <string.h>void rev(char *buf, int size){ int i = 0; int temp; for(;i<size/2; i++) { temp = buf[i]; ...原创 2018-04-22 19:42:23 · 21408 阅读 · 0 评论 -
C语言——printf打印字符串(关于数据在内存中存储格式的体现)
PS:本篇文章,是笔者在C语言学习过程中的所产生疑惑的地方,经过查阅相关资料得出的结论,如有错误的地方,还望指出改正。int 占4个字节, 这里输入的8位16进制数每相邻两位数代表一个字节。如:44,43,42,41int b = 0x41424344;printf("string: %s\n", &b);注意:%s打印字符串的时候,必须要求printf所传参数必须是一...原创 2018-04-17 00:14:13 · 37523 阅读 · 6 评论