![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 56
lanximu
这个作者很懒,什么都没留下…
展开
-
c++ socket 网络编程
基于TCP(面向连接 )的socket编程服务器端:1 创建套接字(socket);2 将套接字绑定到一个本地地址和端口上(bind)3 将套接字设为监听模式,准备接受客户请求(listen)4 等待客户请求到来,当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)。3 用返回的套接字和客户端进行通信(send/recv)6 返回,等待另一客户原创 2013-04-26 22:50:42 · 819 阅读 · 0 评论 -
c Union 和 struct 区别
union和struct的区别在于: 1、对于一个union类型的变量,所有成员变量共享一块内存,该内存的大小有这些成员变量中长度最大的一个来决定 2、union分配的内存是连续的,这一点非常重要。 更具体的看这里,还有测试代码呢(附件1): 那为什么要发明union呢?这是由于union的特性决定的,特别是上述的第二点,因为struct中成员变量虽然内存都是独立的转载 2014-01-15 09:12:20 · 890 阅读 · 0 评论 -
玩转C链表
http://www.cnblogs.com/wwang/archive/2010/11/28/1889281.html链表是C语言编程中常用的数据结构,比如我们要建一个整数链表,一般可能这么定义:1234struct int_node { int val; stru转载 2014-01-18 11:28:07 · 661 阅读 · 0 评论 -
C链表的增删查改
/**002 * @todo c链表操作:CURD003 * @author Koma004 **/005#include006#include转载 2014-01-18 11:33:16 · 1392 阅读 · 0 评论 -
fopen文件读写函数
如果您是c语言初学者,我想,您应该先知道学习c语言的方向与目标,先看下吧!Linux 编程前景及其经典书籍推荐1.fopen() fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此流相连接,给此流返回一个FILR指针。转载 2014-01-19 16:19:29 · 3180 阅读 · 0 评论 -
VC++中编译C出错:error C2143: syntax error : missing ';' before 'type'
描述:近来写程序时发现了一个问题,用 VC 编译 C语言是 总是提示一个错误:error C2143: syntax error : missing ';' before 'type'。分析:出现此问题的原因在于:将文件保存成了 *.c 格式。如果是 cpp 格式就能正常编译。这是因为:在 ANSI C 或者 C++中,在可执行代码中随时定义变量转载 2014-03-13 15:00:58 · 2046 阅读 · 0 评论 -
Windows编程之非模态对话框
// n 注: 最近真不是喜欢上windowsbianche1 创建非模态对话框 HWNDCreateDialog( HINSTANCE hInstance, // handle to module LPCTSTRlpTemplate, // dialog box template name转载 2014-04-29 17:26:04 · 871 阅读 · 0 评论 -
C 提升权限 关机/重启
#include #include BOOL EnableShutDownPriv(){HANDLE hToken = NULL;TOKEN_PRIVILEGES tkp = { 0 };if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hTo转载 2014-04-23 14:34:25 · 742 阅读 · 0 评论 -
深入分析qsort库函数
转自:http://blog.163.com/okwangrong@126/blog/static/404102532009717105635509/ 正如大家所知道的,快速排序算法是现在作为数据排序中很常用的算法,它集成在ANSI C的函数库中。我们经常使用快速排序,就是调用qsort函数,那么qsort函数里面到底是怎么实现的呢?我们现在就来看一看。 在这个系列的转载 2014-05-10 14:48:15 · 930 阅读 · 0 评论 -
给字符数组赋值的方法
main() { char s[30]; strcpy(s, "Good News!"); /*给数组赋字符串*/ . . . } 上面程序在编译时, 遇到char s[30]这条语句时, 编译程序会在内存的某处留 出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为 Turbo C2.0的函数)时, 首先在目标文件的转载 2014-05-17 11:37:17 · 1576 阅读 · 0 评论 -
原码 反码 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式转载 2014-04-26 16:46:08 · 545 阅读 · 0 评论 -
srand (seed) rand() 产生随机数
标准库(被包含于中)提供两个帮助生成伪随机数的函数:函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。函数二:void srand(unsigned seed);参数seed是rand()的种子,用来初始化rand()的起始值。可以认为rand()在每次被调用的转载 2014-05-21 20:42:42 · 1153 阅读 · 0 评论 -
C 函数返回局部变量
一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意转载 2014-01-15 10:51:09 · 658 阅读 · 0 评论 -
C 栈溢出详解
转载:作者:独自等待出处:IT专家网2007-12-18 09:56虽然溢出在程序开发过程中不可完全避免,但溢出对系统的威胁是巨大的,由于系统的特殊性,溢出发生时攻击者可以利用其漏洞来获取系统的高级权限root,因此本文将详细介绍堆栈溢出技术…… 在您开始了解堆栈溢出前,首先你应该了解win32汇编语言,熟悉寄存器的组成和功能。你必须有堆栈和存储分配方面的基础知识,有关这方面的计算机书籍转载 2014-01-14 11:48:42 · 12226 阅读 · 1 评论 -
c 详解大端和小端
详解大端模式和小端模式嵌入式开发交流群280352802,欢迎加入!一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,转载 2014-01-14 11:09:35 · 964 阅读 · 0 评论 -
C/ C++基础(一)
(1)& 和 &&区别&是按位与是转换成二进制数后每位分别进行与计算&& 是与运算,与运算是值如果x为真,y为真,则(x&&y)为真,返回一个布尔值1. | 和 ||区别|是 按位或 是转换成二进制数后每位分别进行或运算|| 是或运算,或运算是指如果x和y中有一个为真,则(x||y)为真,返回一个布尔值1.(2)计算x转化为二进制后包含1的数量。原创 2013-10-06 23:47:13 · 1195 阅读 · 0 评论 -
数据结构基础(一):单链表 双链表 循环链表
(1)单链表编程实现一个单链表的建立/测长/打印。#include #include typedef struct student{ int data; struct student *next;}node;//建立单链表node *creat(){ node *head,*p,*s; int x,cycle=1;原创 2013-10-08 16:19:34 · 1094 阅读 · 0 评论 -
C/ C++基础(二)
(1)运算符优先级#include using namespace std;int main(){ unsigned char a = 0xA5; unsigned char b = ~a>>4+1; //cout printf("b=%d\n",b); //b=250 return 0;}/*这道题目考察两个知识点: 一是类原创 2013-10-07 18:08:55 · 1360 阅读 · 0 评论 -
C/C++基础(三)【sizeof && inline函数】
sizeof下面代码的输出结果是什么?[整型 int 4字节长整型 long 4字节字符型 char 1字节单精度 float 4字节双精度 double 8字节长双精度 long double 8字节]#include #include #include using namespace std;struct{ short a1; s原创 2013-10-21 19:35:37 · 1036 阅读 · 0 评论 -
VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出
换了一台电脑,vc6.0程序中,点击打开文件以及向工程中添加文件时,程序竟然崩溃自动退出了。不知什么原因,安装相同的vc程序,本本竟然出现此缘故。但是这个操作又是自己经常用到的,所以不得不解决。与上一台电脑不同的是,此电脑是win7系统,而上一个则是xp系统。此电脑office是2010版本,而上一个则是WPS;于是乎,在网上查资料,来解决。看到网上也有类似的问题,有的说是转载 2014-01-01 19:12:59 · 952 阅读 · 0 评论 -
C语言变量、函数的作用域及变量的存储方式
一.变量的作用域和存储方式在C语言中每个变量都有两种基本属性:数据类型、数据的存储类别。数据类型很多人都已熟知,例如:字符型(char)、整型(int)、浮点型(float)等等。存储类别是指数据在内存中的存储方式,C语言中的存储类别共有4种:自动的(auto)、静态的(static)、寄存器的(register)、外部的(extern)。根据变量的存储类别,可以知道变量的作用域和转载 2014-01-13 11:24:34 · 2871 阅读 · 0 评论 -
C语言字符串数组的使用
1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I',' ','a','m',' ',‘h','a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定转载 2014-01-13 12:03:59 · 6476 阅读 · 0 评论 -
C结构体之位域
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位转载 2014-01-13 14:10:14 · 703 阅读 · 0 评论 -
C++中变量的作用域与生命周期
今天在论坛上看到有朋友发帖问道:既然静态全局变量与全局变量都存储在全局数据区,为什么作用域却不一样呢?也许答案非常简单:C++就是这么规定的,静态全局变量与全局变量的唯一区别就是作用域不同。 对一个C++变量来说,有两个属性非常重要:作用域和生命周期,它们从两个不同的维度描述了一个变量--时间和空间。顾名思义,作用域就是一个变量可以被引用的范围,如:全局作用域、文件作用域、局部作用域;转载 2014-01-13 11:25:13 · 722 阅读 · 0 评论 -
详解C语言的类型转换
详解C语言的类型转换1.自动类型转换字符型变量的值实质上是一个8位的整数值,因此取值范围一般是-128~127,char型变量也可以加修饰符unsigned,则unsigned char 型变量的取值范围是0~255(有些机器把char型当做unsighed char型对待, 取值范围总是0~255)。如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转载 2014-01-13 11:32:04 · 731 阅读 · 0 评论 -
c语言循环优化
C语言常规优化策略3 循环优化提高程序效率的核心是对影响代码执行速度的关键程序段进行优化。在任何程序中,最影响代码速度的往往是循环语句,特别是多层嵌套的循环语句。因此,掌握循环优化的各种实用技术是提高程序效率的利器,也是一个高水平程序必须具备的基本功。本节有关各种循环优化技术的讨论基本上以下面的一个程序段为对象,程序的涵义为:对于两个给定的数组a、b,计算a[8]b转载 2014-01-13 11:53:27 · 6142 阅读 · 0 评论 -
关联自己的应用程序到系统右键菜单
在Windows2000中,当用户在“我的电脑”或“资源管理器”中的某一文件上单击鼠标右键时会出现一个快捷菜单。单击的位置和对象不同,快捷菜单的内容也不尽相同。用户可根据自己的需要定制快捷菜单中的一些内容。假设用户希望在txt文件类型的右键快捷菜单中关联上自己的应用程序 (用户的应用程序名为mytxtapp.exe,在D盘根目录下) ,步骤如下:1、在注册表中找到并打开HKEY_C转载 2014-05-27 19:36:19 · 2403 阅读 · 0 评论