C
文章平均质量分 64
Daiina
这个作者很懒,什么都没留下…
展开
-
关于C语言局部变量的思考
函数的形参变量要等到函数被调用时才分配内存,局部变量也是如此。 局部变量是定义在函数内部的变量,它的作用域只在函数内部,函数之外调用它会产生你不能控制的结果。我们先来看一个例子:#include <stdio.h>int *Test(int);int *Test(int tmp){ int a = 9; return &a; //这里返回...原创 2018-04-14 10:11:37 · 399 阅读 · 0 评论 -
Linux下简单socket编程
Linux下简单socket编程socket的英文翻译是接口、插座的意思,很形象,就相当于将两个台电脑用一根线连起来,线的两头分别是插头,插在两台电脑上,借此实现通信。两台电脑通信,实际上是这两台电脑上的某个进程在进行通信。而两个进程进行通信,实际上是往同一个文件中读取数据。在理解socket编程之前,先大概了解一下socket缓冲区的概念。socket编程基于传输层,是应用层和传输层之间...原创 2019-04-06 21:46:13 · 18399 阅读 · 3 评论 -
main函数的参数列表
main函数的参数列表main函数实际上是有参数的,如何给main函数传参,main函数的参数值是从操作系统的命令行上获得的,当要执行一个课执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些参数传送到main的形参中。C:\可执行文件名 参数1 参数2 ...main函数的参数列表#include<stdio.h>int main(int agrc; cha...原创 2019-04-06 19:18:15 · 1426 阅读 · 2 评论 -
Linux下报错parameter ‘***’ has just a forward declaration
#Linux下报错parameter ‘***’ has just a forward declaration因为写函数时,函数参数之间写成了分号,而不是逗号。#include<stdio.h>//这里应该写成 int main(int agrc, char* argv[], char *envp[])====>是逗号,!int main(int agrc; char* ...原创 2019-04-06 18:34:05 · 2405 阅读 · 0 评论 -
对等长单词进行字典序排序C_C++
C/C++对等长单词进行字典序排序只对等长字母排序:思路:代码:/*&gt;Plan:对等长单词进行字典序排序;&gt;Author:ADiiana&gt;Time:2019/3/15*/#include&lt;iostream&gt;#include&lt;vector&gt;#include&lt;string&gt;using na原创 2019-03-17 11:14:24 · 755 阅读 · 0 评论 -
辨别指针常量和常量指针_C
辨别常量指针和指针常量_C举例const char *p; //常量指针char const *p; //常量指针int a = 10;char* const p = &amp;a; //指针常量const char* const p = &amp;a; //指针常量指向一个常量记忆:遇见const读常量,遇见*读指针。所以第一行和第二行的代码都可以看做const * 即为常量...原创 2019-03-14 20:34:36 · 137 阅读 · 0 评论 -
C语言中反斜杠的作用_续行符和转义字符
C语言中反斜杠的作用_续行符和转义字符C语言中单反斜杠\有两种作用:续行符和转义字符。双斜杠//是单行注释。续行符的用法用于语句续行和注释续行 printf \ ("nihao\n"); //反斜杠 \ 作为续行符转义字符ASCII字符集中由95个可打印字符(0x20-0x7E)和33个控制字符(0x00-0x1F,0x7E)组成。C语言中定义在字符编号前加"\"...原创 2019-03-02 17:15:36 · 13897 阅读 · 0 评论 -
线程标识和创建 Linux_C/C++
线程标识和创建线程标识进程ID在整个系统中是唯一的,但线程ID只在它所属的进程环境中有效。线程ID用pthread_t数据类型表示,所以可移植的操作系统实现不能把它作为整数来处理,因此必须使用函数来对两个线程ID进行比较int pthread_equal(pthread_t tid1, pthread_t tid2);//参数:两个线程的线程ID//返回值:相等则返回非0值,否则返回0...原创 2019-01-27 17:49:59 · 273 阅读 · 0 评论 -
网络字节序_大小端 Linux_C/C++
网络字节序——大小端计算机内部因为系统差异,数据存储分为大端存储和小端存储。大端存储:数据的高位存储在低地址处,数据的低位存储在高地址处(大高低)。小端存储:数据的低位存储在低地址处,数据的高位存储在高地址处(小低低)。网络通信要连接两台不同的主机,如果两台主机的大小端不一致,那么通信的数据交换会无法识别。场景1:主机A、B进行通信。主机A是大端存储,主机B是小端存储。已知:发送主机发...原创 2019-01-21 20:09:28 · 1028 阅读 · 0 评论 -
Linux下的彩色渐变进度条_动图 C
彩色进度条完成这个小程序需要一些预备知识:Linux下的色彩是如何编码的?进度条以什么样的形式展现?如何让printf?理解计算机缓冲区的概念。##问题一 在Linux下编程不能用到&amp;amp;amp;lt;windows.h&amp;amp;amp;gt;的头文件,那怎么实现彩色,我们需要研究一下Linux彩色打印。 Linux终端会解析一些,并且依据控制码来设置终端的绘制属性,所以只要输出流中包含ANSI控制码...原创 2018-10-29 20:54:02 · 419 阅读 · 0 评论 -
C语言的编译链接执行过程
C语言的编译链接执行过程 机器不能识别高级语言,而对我们来说高级语言更方便理解,这需要编译器的帮助才能完成中间的转化过程:将高级语言转化成机器能识别的二进制文件。 而一个C程序在执行过程中,需要经历两个环境:编译环境和执行环境编译环境的四个步骤预处理:对源代码进行处理编译:生成汇编语言汇编:将汇编语言转化成机器语言链接:将生成的目标文件与相关的目标文件或标准库链接,生成可执行...原创 2018-10-31 11:01:47 · 2439 阅读 · 0 评论 -
VS2013: error C1075
一直都能运行的文件突然出现了一大堆问题。但所有问题的根源都是下面这个,要善于找问题,其它的问题就相应解决了 是因为我在写 .c 文件中的某一个函数时少加了一个 右括号,加上之后,其他问题都解决了。...原创 2018-10-15 13:33:39 · 1808 阅读 · 0 评论 -
函数栈帧
每一次函数调用都是一个过程,为函数开辟栈空间,用于本次函数调用中临时变量的保存、现场保护。这块栈空间我们称为函数栈帧。 我们从汇编角度来分析函数调用过程中底层寄存器的使用,通过ebp(栈底指针)和esp(栈顶指针)控制的空间来体现栈帧的大小,主要问题有三个:现场保护信息、形参实参传递、函数指针回落。文章比较长,如果想直接了解过程,可以只查看函数栈帧图。准备工作编译器:Visua...原创 2018-07-22 17:42:47 · 1331 阅读 · 1 评论 -
C语言陷阱——隐式类型转换
C语言陷阱——隐式类型转换C语言有隐式类型转换,即如果将无符号类型和有符号类型一起运算,会将有符号类型转换成无符号类型,这种操作如果放在while和if语句的条件判断中,会有想不到的结果,所以要小心小心~举例:strlen函数返回值是size_t,strlen不包含‘/0’#include <stdio.h>#include<string.h> int main...原创 2019-04-12 10:39:36 · 392 阅读 · 0 评论