C语言
YifengGuo233
计算机研究生在读,分享知识,一起成长,共同进步。
展开
-
C语言中的野指针是什么?
C语言中的野指针是什么?野指针指的是哪些指向位置不正确(随机)的指针为什么会存在野指针?指针变量没有初始化导致:#include<stdio.h>#include<stdlib.h>int main(){ int value = 10; //int *p; //当我没有给这个指针初始值的时候,这个指针有可能指向任意一个地址这时候 int *p = NULL; //所以正确的方式是将指针设为NULL指针 //int.原创 2021-04-05 16:26:32 · 489 阅读 · 0 评论 -
Stack和Heap的区别?
目录Stack和Heap的区别?表格Stack和Heap的区别?表格Stack Heap 线性数据结构(linear data structure) 分层数据结构(hierachical data structre) 不会有零碎的内存 会有零碎的内存 Stack里的变量不可以被重新定义size Heap里的变量可以被重新定义size Stack分配内存时,是一整块内存 Heap分配内存时,是随机顺序的 Stack不需要取消分配 He原创 2021-03-14 12:55:49 · 116 阅读 · 0 评论 -
C语言字符串赋值
C语言字符串赋值#include <stdio.h>int main(){ char s[10]; s = "string"; //main.c:14:7: error: assignment to expression with array type //s = "string"; char *sp; *sp = "string"; //Segmentation fault char *原创 2021-03-06 12:56:50 · 2158 阅读 · 2 评论 -
C语言快速在char和对应的ascii值之间转换
C语言快速转换char到intchar inputint ascii = input - '0';printf("%d\n", ascii); //这就是char对应的ascii值原创 2021-03-04 08:49:34 · 6319 阅读 · 1 评论 -
C语言字符串逆序
C语言字符串逆序#include<stdio.h>#include<stdlib.h>#include<string.h>int i, length; int main(){ char input[100]; char rev_input[100]; gets(input); length = strlen(input); for(i = 0; i < length; i++){ rev_in.原创 2021-03-04 07:58:11 · 1246 阅读 · 1 评论 -
获得输入字符串最后一个单词的长度
获得输入字符串最后一个单词的长度#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 5000char* input;int i, ret;int start = 0;char temp;int main(){ int size = 0; input = (char*) malloc(MAX * sizeof(char)); gets(input原创 2021-03-04 03:25:17 · 286 阅读 · 1 评论 -
C语言数组如何插入元素
C语言数组如何插入元素int *arr;int value = 0;arr = (int*) malloc(100 * sizeof(int));//这种方式可以arr[i] = value;//这种方式也可以*(arr+i) = value原创 2021-03-03 13:28:59 · 9885 阅读 · 1 评论 -
c语言如何获得数组数量
c语言如何获得数组数量int *arr;arr = (int*) malloc(100 * sizeof(int));int size = sizeof(array)/sizeof(array[0]);printf("size就是数组元素数量: %d\n", size);原创 2021-03-03 13:27:02 · 1886 阅读 · 0 评论 -
私有和公开IP地址的区别是什么?
私有(private)和公开(public)IP地址的区别是什么?什么是公开(Public IP Address)IP地址?公开IP地址是用于连接外部网络,通常是网络运行商(ISP,Internet Service Provider)提供给每个区域的什么是私有(Private IP Address)IP地址?私有IP地址是用于连接内部网络,通常是用于识别内部设备的地址公开网络 私有网络 面对外网 面对内网 需要花费 无需花费 除了私有网络专属原创 2021-02-14 12:42:08 · 1597 阅读 · 0 评论 -
在C语言能否把程序本身打印出来(Quine )?
在C语言能否把程序本身打印出来(Quine )?Quine是指的一种计算机程序,不通过任何形式的输入,将自己的源代码输出的一种程序,常见于自我复制程序,概念出于Computability Theory原创 2021-02-14 09:26:11 · 445 阅读 · 1 评论 -
C语言如何打印变量的二进制?
C语言如何打印变量的二进制?在Stackoverflow看到的一个很好用的代码,在检查程序的时候可以很好的检查各种情况,分享给大家。https://stackoverflow.com/questions/111928/is-there-a-printf-converter-to-print-in-binary-format代码如下:// Assumes little endianvoid printBits(size_t const size, void const * const pt原创 2021-02-11 08:36:49 · 6272 阅读 · 1 评论 -
C语言数据类型谜题总结
目录C语言数据类型谜题总结如果int x<0为真,那么(x*2)<0是否一定正确?unsigned int ux一定大于等于0么?如果(x&7)==7,那么(x<<30)<0一定正确么?C语言数据类型谜题总结前提:int x, y;unsigned ux = x;unsigned uy = y;如果int x<0为真,那么(x*2)<0是否一定正确?错误:溢出,严格上是下溢(underflow)#incl原创 2021-02-06 05:50:35 · 863 阅读 · 0 评论 -
浮点数C语言中
浮点数in C定义小知识定义float的时候默认8位寄存器(Reg)#include <stdio.h>int main(){ float f = 0.3; printf("%.20f\n", f); return 0;}0.30000001192092895508为什么这个数字不是很精确呢,因为float创建的时候是默认8位寄存器。那么0.3和0.1+0.2是否会有一样的结果呢?#include <..原创 2021-02-04 00:52:53 · 477 阅读 · 0 评论 -
什么是僵尸进程(Zombie Processes)
什么是僵尸进程(Zombie Processes)什么是fork()fork()是个system call用于建立新的进程,新建立的进程被称作子进程(child process),和父进程同时运行。当子进程(child process)开始工作,子进程和父进程都会执行fork()之后的代码。子进程和父进程共享,程序计数器(Program counter,PC)寄存器(CPU registers)文件流(open files)等等。子进程和父进程可以通过这些共享的地方进行交流。返回当子进程原创 2021-01-28 14:48:44 · 679 阅读 · 0 评论 -
什么是fork()?
什么是fork()fork()是个system call用于建立新的进程,新建立的进程被称作子进程(child process),和父进程同时运行。当子进程(child process)开始工作,子进程和父进程都会执行fork()之后的代码。子进程和父进程共享,程序计数器(Program counter,PC)寄存器(CPU registers)文件流(open files)等等。子进程和父进程可以通过这些共享的地方进行交流。例子:我们在程序中调用1次fork()会发生什么呢?#i原创 2021-01-28 15:13:24 · 3039 阅读 · 0 评论