C语言/C++ 学习
文章平均质量分 71
yaomoon
这个作者很懒,什么都没留下…
展开
-
C语言中原码,反码,补码的分析
1. 原反补 (1) 计算机中数都是用补码来存储的,由于无符号类型和有符号的整数补码是其本身,则补码主要为负数设计, (2) 采用补码,可以是负数的符号位参与运算,从而方便的用加法实现减法(CPU中只有加法器)。 例: 2-1=1; 2的补码为2,-1的补码为1111 1111;之后相加,为 1 0000 00001 ,最高位符号位溢出舍去,故结果为 0000 00原创 2014-04-16 18:22:34 · 1173 阅读 · 0 评论 -
进程和线程的区别
当我们的程序中的两个功能需要同时实现,或是都需要阻塞,我们可能会想到求助于进程或线程,但它们的具体区别是什么或许一下还说不出来。进程是具有一定独立功能的程序,是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥原创 2014-04-16 18:23:08 · 424 阅读 · 0 评论 -
C++ QT学习3
1QT 中将整型转换成字符串类型.一个把数字n转换为字符串的方便函数,n被基于base表示,默认为10,并且必须在2到36之间。 long a = 63; QString str = QString::number( a, 16 ); // str == "3f"把QString形转换为整形1.转换为十进制整形注意:基数默认为10。当基数为10时,并且基数必须在2到36之间。原创 2014-04-16 18:22:22 · 236 阅读 · 0 评论 -
C语言字符串函数
1字符串拷贝 strcpy(str1,str2) ; str2 str1覆盖 strncpy(str1,str2,n);//把str2的n个字节赋给str1的前n个字节,其他的不变 ,并不覆盖 例子 str1 = "yaomingyue"; str2 = "kkkk"; strncpy(str1,str2,3); 结果: str1 = "kkkmingyu原创 2014-04-16 18:22:56 · 283 阅读 · 0 评论 -
函数指针 往指定内存中写数据
1 函数指针的定义和调用 简单的函数指针 void (*fun)(void)再定义个函数实体void hello(void){ printf("hello world");}调用时 fun = hello;(*fun)();当某个地址就是函数的入口地址也可以这样用fun = (void (*)(void))0x37010000;fun();( fun 和 (*fun)都指函数的地址 ,加上()原创 2014-04-16 18:23:33 · 582 阅读 · 0 评论 -
【转】编译,链接与库的使用(1)
背景 为什么使用ullib有时会出现 undefined reference error 的错误?为什么在动态链接库里ul_log会把日志输出到屏幕上?为什么用-static 编译有时候会报warning?我们在使用基础库或者第三方库的时候,经常遇到这样那样的问题,本文结合公司目前的主要环境,说明库的原理,使用的注意事项。 从程序到可执行文件 从hello world 说起 #includein原创 2014-04-16 18:25:35 · 518 阅读 · 0 评论 -
C++学习笔记1
p { margin-bottom: 0.21cm; } 1.this 指针。 当前对象的地址。只能在类的成员函数中调用。 类和对象。类就像定义的结构体类型,对象就是该类型定义的变量。 :: 在class和nameplace中使用 c++中类和结构体 在C++中只有两点区别: (1)class中默认的成员访问权限是private的,而struct中则是public的。 (原创 2014-04-16 18:22:18 · 170 阅读 · 0 评论 -
C++学习笔记2 QT学习
p { margin-bottom: 0.21cm; } 1软链接 将qmake链接到usr/bin目录下,可以直接用作命令 Cd usr/bin Sudo Ls -s /home/administrator/qt/bin/qmake 2 qt debug #include qDbug (“a = %d”,5); pre.western { font-family: "原创 2014-04-16 18:22:20 · 228 阅读 · 0 评论 -
Qt程序——socket编程
1 TCP client socket = new QTcpSocket(this);socket->connectToHost(QHostAddress("10.1.14.122"),9901);connect(socket, SIGNAL(readyRead()), this, SLOT(slotRreayRead()));socket->write(buff); // 写数据buff =原创 2014-04-16 18:22:43 · 490 阅读 · 0 评论 -
动态分配malloc realloc free
1 malloc( unsigned int num_bytes) 分配长度为num_bytes的内存块, 注意: malloc 只管分配不进行初始化和越界判断,即刚获得的内存中的数据是随机的; 不进行越界判断 例如: char *k = malloc(10);for(i = 0; i { k[i] = 'c';}for(i = 0; i { printf("%c",原创 2014-04-16 18:23:05 · 1051 阅读 · 0 评论 -
linux下堆与栈的比较
一 首先堆栈都是一种数据项按序排列的数据结构 ,只能在一端(栈顶)对数据进行插入和删除; 二 主要区别 1 申请方式不同: 栈是由系统自动分配的,速度较快,但程序员不能控制; 栈是由程序员申请的(malloc)(free) ;能自己控制 2 存储内容; 每个进程都有一个栈,在这个进程中每个函数被调用是分别从 这个栈中占用原创 2014-04-16 18:23:01 · 415 阅读 · 0 评论 -
C 语言编译过程 C语言中各种数据存储的不同内存区域 关于sizeof 结构体比实际的大的问题
C语言 一 C 语言编译过程 第一步 预处理 将.c文件处理成.i文件 第二步 编译(调用C编译器) 将.i 编译成汇编的.s文件 第三步 汇编(调用汇编器) 将.s编译成可重定向的.o文件 第四步 链接 (调用连接器) 将main.o hello.o以及必要的系统目标文件链接组合,生成一个可执行的目标文件.out;(假设源文件中有main.c hello.c main.h 等)二原创 2014-04-16 18:22:36 · 476 阅读 · 0 评论 -
C 语言常见面试题
1 #define 与 typedef的区别 (1 #define是预处理指令,在预处理时进行替换,其后边没有分号; (2 typedef是在编译时处理的, 使用时注意: 1例:#define PINT int * typedef int * pint PINT a,b; 相当于int *a,b; 只定义了一个指针 pint a,b; 是定义了两个指针,(#define 只原创 2014-04-16 18:23:46 · 306 阅读 · 0 评论 -
【引用】cmd下网络配置命令
cmd下网络配置命令 1.最基本,最常用的,测试物理网络的 ping 192.168.0.8 -t ,参数-t是等待用户去中断测试 2.查看DNS、IP、Mac等 A.Win98:winipcfg B.Win2000以上:Ipconfig/all C.NSLOOKUP:如查看河北的DNS C:\>nslookup Default Server: ns.hesjptt.net.cn Addre原创 2014-04-16 18:23:51 · 6492 阅读 · 0 评论 -
【转】编译,链接与库的使用(2)
静态库和动态库的混合编译 目前我们多数的库都是以静态库的方式提供,但是现在有许多地方出于运维和升级的考虑使用了许多动态链接库,这样不可避免的出现了大量的静态库与动态库的混合使用,经常会出现一些奇怪的错误,使用的时候需要有所关注对于一般情况下,只要静态库与共享库之间没有依赖关系,没有使用全局变量(包括static变量),不会出现太多的问题,下面以出现的问题作例子来说明使用的注意事项。 baidugz原创 2014-04-16 18:25:37 · 984 阅读 · 0 评论 -
C/C++数组名与指针区别深入探索
C语言中 数组与指针 有时确实很难区分,有太多相似,但也有不同,致命的不同。 一 先说说相同点。1数组可以当指针访问,即数组名可以看成指针(暂时这么说)例如 char a[10] = "i love you";*a = 'a'; printf("%s\n",a);printf("%c\n",*a);打印结果 a love you a可以看出数组可以当指针来访问该数组。二原创 2014-04-16 18:22:38 · 348 阅读 · 0 评论 -
Qt文件操作
1 读出目录中的文件名,文件删除 QStringList picFiles; //建立链表class,接QDir()读出的文件名。 QDir dir("/home/administrator/adm/Picture/"); dir.setFilter(QDir::Files); //滤出文件,使读出的名字没有目录名,只包含文件名picFiles = dir.entryList(); //读出原创 2014-04-16 18:22:45 · 294 阅读 · 0 评论 -
C语言的格式化输入将回车输入的问题
当格式化输入字符时 如:scanf("%c",&k); 要特别注意将回车输入的情况;例while(1) { i++; scanf("%c",&k); printf("k = %c\n",k); printf("i = %d\n",i); }运行结果:输入:1输出:k = 1 i = 1 k原创 2014-04-16 18:23:10 · 807 阅读 · 0 评论 -
C语言 文件操作函数 网络编程 共用体 union 结构体 定义
一。文件操作函数1基本文件操作函数1)int open(char *pathname, int flags,mode_t mode); 返回int型操作符,第一个参数文件路径,flags 参数可以设定为如 O_RDWE|O_CREAT ,mode 是设置权限(加上O_CREAT后需要,可设 0664,生成文件权限为_rw _r_ _r_,2) ssize_t read(int fd, voi原创 2014-04-16 18:22:31 · 656 阅读 · 0 评论 -
static 类型的特性
一 static类型 static变量(全局或局部)都存在内存的静态存储区(data bss)二 static 全局变量 特点 : 1 未初始化的变量自动初始化为0; 2 作用域改变(之前是整个工程,现在局限在文件中)。对别的文件不可见,即别的文件即使extern 也不能使用该变量; 3 其他文件可以使用相同名字的变量,不会发生冲突;原创 2014-04-16 18:22:41 · 921 阅读 · 0 评论 -
如何写出漂亮的代码 (转载)
要判断一个程序员是不是好的程序员,主要看他写的代码,因为程序员最重要的事是写代码。 即便不去理解代码的意图,只要看一眼,好的程序员写的代码与差的程序员写的代码基本上就可以看出来。好的程序员写的代码,整洁而规范,视觉上自 然有一种美感。空白错落有致,注释恰到好处,命名和排版遵守统一的规范。差的程序员写的代码则经常出现过长的函数,前后不一致的命名方式和排版,过深的嵌 套结构,非常复杂的表达式,随处原创 2014-04-16 18:24:40 · 2967 阅读 · 0 评论