c
wretchedme
一步一步接受洗礼
展开
-
2进制与8,16,10进制的相互转换(带小数点)
十进制转化为原创 2014-08-26 20:11:50 · 4472 阅读 · 0 评论 -
#pragma once 与 #ifdef !!!
解析#pragma指令 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para转载 2014-10-21 22:46:14 · 468 阅读 · 0 评论 -
前缀加一、减一操作符在C/C++中的不同语义问题
$ cat -n 1.c 1 int main( int argc, char **argv ) 2 { 3 int i = 0; 4 /*++i = 3;*/ 5 ++(++i); 6 ++(i++); 7 (++i)++; 8 (i++)++; 9 }$ cat转载 2015-04-26 13:01:35 · 532 阅读 · 0 评论 -
c语言中逗号运算符和逗号表达式
来自:百度空间-软件工程师 C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如: 3+5,6+8称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为 表达式1,表达式2逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如,上面的逗号表达式“3+5,6+8”的值为14。又如,逗号表达式转载 2015-04-26 12:44:52 · 444 阅读 · 0 评论 -
C语言undefined behaviour未定义行为
C语言中的未定义行为(Undefined Behavior)是指C语言标准未做规定的行为。同时,标准也从没要求编译器判断未定义行为,所以这些行为有编译器自行处理,在不同的编译器可能会产生不同的结果,又或者如果程序调用未定义的行为,可能会成功编译,甚至一开始运行时没有错误,只会在另一个系统上,甚至是在另一个日期运行失败。当一个未定义行为的实例发生时,正如语言标准所说,“什么事情都可能发生”,也许什么转载 2015-04-26 12:58:04 · 642 阅读 · 0 评论 -
如何写程序判断自己电脑是大端字节序还是小端字节序?
大端字节序 :网络字节序小端字节序 :主机字节序大端字节序 : 高字节序存于内存的低地址;低字节序存于内存的高地址。小端字节序 : 高字节序存于内存的高地址;低字节序存于内存的低地址。方法一:#include #include using namespace std;int main (void) { int num = 1; if (原创 2015-04-30 08:25:58 · 3297 阅读 · 0 评论 -
new分配的内存一定在堆上么?
运行环境在 Ubuntu 14:05 上#include #include #include int main (void) { int *A = new int(100); printf("%p\n",A); printf("请查看/proc/%u/maps,按回车结束....",getpid()); getchar (); return 0;}原创 2015-04-29 17:51:29 · 5882 阅读 · 0 评论 -
先构造的一定后析构么,后构造的一定先析构么?
先构造的一定后析构么,后构造一定先析构么?首先要看一个/* 设已经有A,B,C,D 4个类的定义,程序中A,B,C,D 析构函数调用顺序*/C c;void main () { A* pa = new A (); B b; static D d; delete pa;}ABCD都是类,所以我们要看一下他们析构和构造的顺序。首原创 2015-04-28 10:24:24 · 3131 阅读 · 0 评论 -
c语言编译过程!!!
认识C编译执行过程,是C学习的开端。简单说C语言从编码编译到执行要经历一下过程: C源代码编译---->形成目标代码,目标代码是在目标机器上运行的代码。连接---->将目标代码与C函数库相连接,并将源程序所用的库代码与目标代码合并,并形成最终可执行的二进制机器代码(程序)。执行----->在特定的机器环境下运行C程序。 如果用一个图转载 2015-09-23 21:55:14 · 490 阅读 · 0 评论 -
%*[] 和 %[] 和 %*c 和 %n各自的运用!!!
在学习标c 的shi原创 2014-10-03 13:14:24 · 2494 阅读 · 0 评论 -
深入讲解标准c语言的IO
标准 C I/O函数列表:clearerr() 清除错误 fclose() 关闭一个文件 feof() 如果到达文件尾(end-of-file)返回"True"(真) ferror() 检查一个文件错误 fflush() 书写输出缓存的内容 fgetc() 从流获取一个字符 fgetpos() 获取文件位置指针 fgets() 从一个流获取一串字符 fope转载 2014-10-03 17:02:18 · 597 阅读 · 0 评论 -
进一步了解scanf函数!!!
对于这个函数scanf y原创 2014-10-03 11:37:43 · 615 阅读 · 0 评论 -
malloc calloc realloc 三兄弟!!!
学习过C语言的都知道 malloc calloc realloc 这三个函数,zhe san ge原创 2014-08-27 21:52:44 · 771 阅读 · 0 评论 -
如何区分函数指针和指针函数!!!
对于刚学习的原创 2014-08-27 20:18:52 · 702 阅读 · 0 评论 -
strcmp/strncmp/stricmp(windows) strcasecmp/strncasecmp(linux)
str***cmp函数的是不是有很多人见过啊.......而且有有时候f e原创 2014-09-16 19:23:09 · 2192 阅读 · 0 评论 -
#pragma once 与 #ifndef 的区别解析!!!
为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 声明、定义语句转载 2014-10-21 22:49:18 · 490 阅读 · 0 评论 -
typedef和#define的用法与区别!!!
typedef和#define的用法与区别一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;转载 2014-10-22 20:23:01 · 490 阅读 · 0 评论 -
#define、const、typedef的区别!!!
#define 并不是定义变量, 只是用来做文本替换 例如: #define PI 3.1415926 float angel; angel=30*PI/180; 那么,当程序进行编译的时候,编译器会首先将 “#define PI 3.1415926”以后的,所有代码中的“Pi”全部换成 “3.1415926” 然后再进行编译。 我查到一个讲const与#defin转载 2014-10-22 21:57:01 · 480 阅读 · 0 评论 -
%*c %*s printf scanf !!!
说实话,我原创 2014-11-07 17:01:20 · 786 阅读 · 0 评论 -
switch case 语句要注意!!!
c语言中的switch case 语句相比大家也是非常的清楚的。原创 2014-10-01 17:04:05 · 56728 阅读 · 11 评论 -
取反(~)和相反数 是不一样的!!!
这几天正在看补码的问题,发现这个东西shi z原创 2014-10-01 12:45:21 · 5795 阅读 · 6 评论 -
稳定与不稳定
(1)冒泡排序冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。(2)选择排序选择排序是给每个位置选择当转载 2016-03-25 11:45:29 · 606 阅读 · 0 评论