C语言
文章平均质量分 61
hhhhhyyyyy8
好记性不如烂笔头
展开
-
#if0...$endif作用
https://blog.csdn.net/raining_heart/article/details/8019535https://www.cnblogs.com/nevel/p/6378035.html转载 2019-11-03 20:41:45 · 963 阅读 · 0 评论 -
int类型长度
今天在Ubuntu64位上测试了一下int类型长度,发现是32,不是64。#include<stdio.h>int main(int argc, char const *argv[]){ printf("sizeof(long) = %d, sizeof(long long) = %d, sizeof(int) = %d\n",sizeof(long),sizeof(lo...原创 2019-11-03 12:56:29 · 1895 阅读 · 0 评论 -
c语言枚举enum
1. 枚举平常用的少,印象中枚举的使用还停留在星期的举例上,就像下面这个例子:#include<stdio.h>enum week{ Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Wenday,};int main(int argc, char const *argv[]){ enum...原创 2019-11-02 14:41:52 · 160 阅读 · 0 评论 -
随便mark
1.调整数组顺序使奇数位于偶数前面 2.使用一个辅助数组#include<stdio.h>void oddbeforeeven(int *a, int len){ int oddnumber = 0; for (int i = 0; i < len; i++) { if (a[i] % 2 == 1) oddnumber++; } i...原创 2018-09-04 21:20:07 · 137 阅读 · 0 评论 -
malloc_calloc_realloc_void*_NULL指针
目录malloc:calloc:memsetmemset函数返回值意义:memset容易出错的地方:realloc:free:内存泄漏:内存泄漏原因:1.丢失内存地址,例如重复给一个指针变量分配内存2.不使用的内存没有free悬空指针:野指针:void*指针:NULL:malloc:参数指定要分配的字节数,如果成功,返回堆上分配的...原创 2018-09-01 22:18:23 · 569 阅读 · 0 评论 -
C语言main函数参数、返回值
引用:https://www.cnblogs.com/findumars/p/6220233.htmlhttps://blog.csdn.net/Qsir/article/details/78286502https://blog.csdn.net/u012219371/article/details/78964904https://blog.csdn.net/baidu_4181336...转载 2018-08-21 16:16:36 · 6077 阅读 · 1 评论 -
合并两个数组
问题:array1,array2为两个有序的升序数组,将array1和array2合并为一个升序有序数组1.合并两个有序数组array1,array2,借助数组array3。从头开始,将array1的第一个元素和array2的第一个元素比较,小的放到array3中。#include<stdio.h>#define MAX 15//合并两个有序数组a,b,借助数组cvoid ...原创 2018-07-14 12:23:53 · 6332 阅读 · 0 评论 -
typedef定义结构体数组类型
今天在看图的邻接表时,看到了这样一段代码typedef struct VertexNode{ char data; int weitht; struct EdgeNode * firstEdge;}VertexNode,AdjList[MAX_VERTEX];这里AdjList就是结构体数组类型AdjList adjlist;等价于 struct VertexNode adjlist[M...原创 2018-07-05 10:54:39 · 11748 阅读 · 6 评论 -
scanf函数%c前为什么加空格
转载自:https://blog.csdn.net/u010850265/article/details/9136679今天在创建图的邻接矩阵的时候,碰到了从键盘输入字符的问题,整了半天,发现问题出在scanf(" %c",&a)这里,这里%c前面需要加一个空格,来屏蔽回车的影响。#include <stdio.h>int main (void) { int i ; c...转载 2018-07-04 19:57:08 · 12013 阅读 · 10 评论 -
牛客网_部分错题记录
1.线性表基本概念 数据元素与数据项:一个数据元素包括多个数据项:例如单个数据元素由年龄,姓名,ID组成。2.数组初始化注意B选型,在C语言中是不能那样初始化的,语法错误。在C++中,是正确的,默认填充0。这样的题就烦得很,没法做。而D选型,在C语言中是正确的,牛客网错了,我在VS中运行了的。 指针没有乘法2.2二维数组初始化问题不管他是...原创 2018-07-10 16:13:30 · 864 阅读 · 0 评论 -
typedef定义函数类型&&定义函数指针类型
今天碰到这个问题,感觉很不错。先记录一下,以后再看。typedef void sigfunc_rt(int, siginfo_t *, void *);在我常规理解里,一般定义一个函数类型都是这样定义的:typedef void (*sighandler_t)(int);其实对于函数,typedef有两类自定义类型:首先我们要先明白一个概念,函数名是不是指针?也就是说一个函...转载 2019-09-01 12:14:32 · 764 阅读 · 0 评论 -
C语言结构体
1. C语言结构体初始化的三种方法转载自:https://blog.csdn.net/chinaeran/article/details/44755759https://blog.csdn.net/ericbar/article/details/79567108直接上示例了#include <stdio.h> struct student_st{ char c...转载 2019-09-01 14:48:49 · 522 阅读 · 0 评论 -
C语言共用体
最近看Linux内核源码,看到很多地方有共用体,应为一般不使用它,一下子还忘了。留个链接记录一下。https://blog.csdn.net/liubing8609/article/details/83150752原创 2019-09-01 15:59:07 · 106 阅读 · 0 评论 -
switch case中变量定义问题
今天在编写C代码的时候,碰到了一个以前没有碰到过的switch case语句中定义变量出错问题。问题大概是这样的,看下面这个代码,它在case中定义了一个变量,然后报错了:#include<stdio.h>int main(int argc, char const *argv[]){ int a = 1; switch(a) { case 0: int m...原创 2019-09-10 23:17:00 · 2765 阅读 · 1 评论 -
c源文件中要包含自己的头文件
引言: 我们经常在c工程中发现,源文件中要包含自己的头文件。一直以来,都不知道为什么这样做。现在,我知道了。以前的认知:我认为,.c文件没有必要包含自己的.h文件。.h文件包含.c文件中定义的函数和全局变量的声明,.h文件就是.c文件提供的对外接口文件。既然.h文件就是.c文件提供的对外接口文件,那么.c文件就没必要包含自己的.h文件了(.h文件是对外提供...转载 2019-09-13 12:51:31 · 4409 阅读 · 2 评论 -
fprintf--snprintf--sscanf--fgets--printf--scanf
牢牢记住:带f开头的函数,都是和文件操作相关的C语言库函数。目录1.fprintf()2.fputs和fprintf区别3.sprintf()4.snprintf()5.sscanf()6.fgets1.fprintf()int fprintf(FILE *stream, const char *format, ...)格式化输入数据到stream中。...原创 2019-09-15 22:53:32 · 906 阅读 · 0 评论 -
Linux中字符串函数
1.strcpy/* Copy SRC to DEST. */char * STRCPY (char *dest, const char *src){ return memcpy (dest, src, strlen (src) + 1);}这strcpy是通过memcpy实现的。今天碰到了一个复制skb的操作,最开始使用strcpy复制,导致复制时一直出错。问题就出在于st...原创 2019-09-16 23:44:22 · 232 阅读 · 0 评论 -
C项目中变量、宏定义、结构体等声明定义位置问题(头文件、源文件)
以前还是项目接触的少了,这些基本功不扎实。目录一、变量二、源文件前加一个自己文件名的宏定义现象三、函数声明时前面加不加extern四、宏定义、结构体、typedef定义等位置一、变量一个全局变量到底是定义在头文件中,还是定义在源文件中?结论:应该定义在.c文件中,不能.h文件中。如果定义在.h文件中,在链接的时候会报变量重复定义错误。例如:有main.c、mya...原创 2019-09-18 00:13:59 · 9873 阅读 · 1 评论 -
C语言goto小记
以前基本上不用,现在看代码还时不时会碰到goto语句,记录一下。goto 语句是一种无条件流程跳转语句,当满足一定条件时,程序流程跳转到指定标号处,接着往下执行。1. goto可以跳出多层循环。#include <stdio.h>int main(int argc, char const *argv[]){ for(int i=1;i<5;i++) { ...原创 2019-09-28 21:54:26 · 164 阅读 · 0 评论 -
C语言的进程的内存空间
对于一个C语言程序,内存空间主要由5个部分组成:代码段(.text),数据段(.data),BSS区,堆,栈代码段:代码区(text segment)。存放CPU执行的机器指令(machine instructions)。通常,代码区是可共享的(即另外的执行程序可以调用它),因为对于频繁被执行的程序,只需要在内存中有一份代码即可。代码区通常是只读的,使其只读的原因是防止程序意外地修改了它的指令...转载 2018-07-10 15:18:44 · 985 阅读 · 0 评论 -
二维数组
1.二维数组第二个下标越界问题#include<stdio.h>int main(){ int a[4][3] = { { 1,1,1 },{ 3,2 ,1},{ 6,7,8 },{ 9,1,1 } }; //当二维数组的第二个下标越界的时候,只要不超过总长度,不报错,不过一般还是别这样用,知道就好 printf("%d\n", a[0][3]);//3}看一下网友的回答...原创 2018-07-09 19:23:40 · 200 阅读 · 0 评论 -
排序算法
算法名称 最好时间复杂度 平均时间复杂度(一般不好算) 最坏时间复杂度 稳定性 空间复杂度 冒泡排序 O(n) O(n^2) O(n^2) 稳定 简单...原创 2018-03-17 00:04:15 · 203 阅读 · 0 评论 -
指针与字符串_字符串处理函数
一、比较字符串strcmp函数原型:int strcmp(const char *s1,const char*s2);返回值:负数:s10:s1=s2正数:s1=s2#includeint main(){ char test[] = "huang\0hah"; printf("%s\n", test);//huang char command[16]; pr原创 2017-12-06 16:36:11 · 441 阅读 · 0 评论 -
指针与字符串_基础知识
一、char类型的长度为1,而字符串字面量的长度为4printf("%d\n", sizeof(char));//1printf("%d\n", sizeof('a'));//4二、字符串字面量看作常量,无法修改字符串。#include<stdio.h>int main(){ char *tabHeader = "Sound"; *tabHeader ...原创 2017-12-06 11:13:43 · 8119 阅读 · 1 评论 -
指针与数组
想到数组指针要想到二维数组,想到指针数组要想到字符串数组。数组指针:即指向数组的指针定义数组指针:int (*q)[4];//q为一个数组指针变量,指向每一行有四个整形元素的数组。这两篇文章还可以:https://www.cnblogs.com/mq0036/p/3382732.html,http://blog.csdn.net/touch_2011/article/details/6966980...原创 2017-12-01 16:35:38 · 181 阅读 · 0 评论 -
指针与函数
最近在看《深入理解C指针这本书》,为了不让自己忘记,就把里面的知识点记录了下来。后面的一系列文章都是这本书的笔记。目录指针与函数_返回指针指针与函数_返回局部数据指针问题指针与函数_函数指针指针与函数_返回函数指针指针与函数_函数指针作参数指针与函数_函数指针转换指针与函数_比较函数指针指针与函数_返回指针在下面的函数中,我们定义一个函数,为其传递一个整数...原创 2017-11-30 16:24:18 · 443 阅读 · 0 评论 -
指针与函数_函数指针数组
#includeint add(int num1, int num2){ return num1 + num2;}int subtract(int num1, int num2){ return num1 - num2;}typedef int(*fptrOperation)(int, int);int main(vo原创 2017-11-30 20:58:29 · 176 阅读 · 0 评论 -
C语言中以16进制输出数据
int i = 10;int *p = &i;printf("%d\n", p);printf("%x\n", p);printf("%X\n", p);printf("%#X\n", p);printf("%p\n", p);结果:原创 2017-11-29 19:03:54 · 7620 阅读 · 1 评论 -
C语言_scanf函数理解
要找工作啦,今天翻开《明解C语言》这本书,复习一下。因为平常不怎么用C语言,好多东西都忘了,看到scanf()时,竟一时想不起为什么要对变量取地址。看一个最简单的scanf()函数例子#include<stdio.h>int main(){ int a; scanf("%d", &a); printf("%d\n", a); return 0;}百度了一下,才发现...原创 2018-03-18 11:41:45 · 183 阅读 · 0 评论 -
C语言_常见知识点
一、关于printf函数1.printf函数是有返回值的,printf返回输出字符的个数。#include<stdio.h>int main(){ int i = 43; printf("%d\n", printf("%d",printf("%d",i)));//printf函数返回值为输出字符的个数//4321 return 0;}2.下面这题来自牛客网,考...原创 2018-04-16 20:24:06 · 3617 阅读 · 0 评论 -
C语言字符串总结
不允许改变字符串字面值:char *p = "hello";*(p + 1) = 'a';//不要这样个干printf("%s\n", p);char a={'a','b','c'};这里不会自动添加\0常见字符串操作,先列这几个吧。#include<stdio.h>#include<string.h>#include<ctype.h&...原创 2018-03-26 20:16:43 · 227 阅读 · 0 评论 -
全排列算法
今天突然发现同学在做蓝桥杯“寒假作业”那题时,用的是全排列,一下子没看懂,就学习了一下。参考http://blog.csdn.net/summerxiachen/article/details/60579623例如要对0,1,2,3,4五个数进行全排列。输出所有排序结果,及方法总数。#include<stdio.h>int a[5] = { 0,1,2,3,4 };int coun...原创 2018-03-20 21:12:09 · 254 阅读 · 0 评论 -
八皇后问题
/*N*N的棋盘上,放置N个皇后,要求,任意两个皇后不能在同一行,同一列,同一对角线。求有多少种放法*///思路:最后N个皇后肯定是每列一个,每行一个。固定行,#include<stdio.h>#define N 8 //8个皇后int count = 0;//放法计数int column[N];//row表示第row行,column[row]表示第row行的皇后所...原创 2018-03-22 21:43:43 · 151 阅读 · 0 评论 -
C语言中可变参数函数的定义
今天在看scanf原型时,看到scanf的原型是int scanf(const char *format,...),居然有省略号,百度了一下才发现,C语言中居然可以声明可变参数的函数。6年的C语言白学了么???才打了一个多小时假鸡,头昏昏的,过两天在来看是什么情况把。参考链接先摆一个http://blog.csdn.net/jxth152913/article/details/5588639...原创 2018-03-18 15:30:28 · 857 阅读 · 0 评论 -
C语言中编译链接问题
以前都知道C语言程序编写好后,要编译链接够才能成为可执行文件。具体包括四个过程:编译预处理,编译,汇编,链接。一、编译预处理1.头文件的包含2.注释的删除3.宏定义的替换4.条件编译的选择(这个不太懂)预编译之后生成.i文件二、编译将程序转换为汇编程序,生成.s文件三、汇编将.s转换为二进制的.o文件四、链接将程序所需的资源包含进来,例如用到的系统函数等。生成.exe文件。参考:http://bl...原创 2018-03-18 15:24:17 · 203 阅读 · 0 评论 -
明解C语言笔记
明解C语言是讲解C语言一本很好的书,看了两三遍了。最近要找工作了,再看看,打打基础,基础,基础。。。笔记按照章节记得,但是有些知识点不再本章讲的,但突然想起来了,就还是写在这章了,管他了,写在哪,不都一样。一、第一章1.break:不能直接放在if下,终止的是for,不是if。2.switch() switch()多层switch中,break终止的是最内层的swit...原创 2018-03-18 15:13:15 · 856 阅读 · 0 评论 -
求最大连续子序列的和
今天看到一道绿盟的面试题。感觉比较有意思,放在这里给大家分享一下。原文如下:小王的账本:小王出门打零工,工作很不稳定,收入也很不稳定,他找了一个账本记录他每天的支出,例如:1月1日 收入320;1月2日 没找到工作,吃饭花了30;1月3日 挣50;1月4日 无工作,吃饭花了17;1月5日 无工作,租房+吃饭花了2600;..........年底了,小王想知道自己账本原创 2017-09-16 21:20:11 · 454 阅读 · 0 评论