导航

2012年9月4日

摘要: http://blog.csdn.net/kuanxu/article/details/7454081今天在代码中看到print语句有%p,想了半天愣是想不出它来打印什么数据类型。通常情况下打印log或者调用sprint等语句,%d, %s, %i等是比较常用的,而如%p,%x等很少见,所以有必要温习一下print函数来了解各种%值得意义。Printf(xxxxx)功 能: 产生格式化输出的函数用 法: int printf(constchar *format,[argument]); format 参数输出的格式,定义格式为:%[flags][width][.perc] [F|N|h|l]t 阅读全文

posted @ 2012-09-04 16:29 vivi_wind 阅读(960) 评论(0) 推荐(0) 编辑

摘要: http://topic.csdn.net/u/20071210/14/321d6ec5-f967-4afb-8d04-b335e6db7b34.html不允许这里修改不代表不允许别处修改,再比如:int i = 5;const int* p = &i;*p = 6; // 不可以;i = 7; // 完全可以,而且那个“const”的“*p”也跟着变成了7。const和volatile放在一起的意义在于:(1)本程序段中不能对a作修改,任何修改都是非法的,或者至少是粗心,编译器应该报错,防止这种粗心;(2)另一个程序段则完全有可能修改,因此编译器最好不要做太激进的优化。“const” 阅读全文

posted @ 2012-09-04 08:48 vivi_wind 阅读(2178) 评论(0) 推荐(0) 编辑

2012年9月3日

摘要: 在阅读本文之前,希望读者对WINDOWS下程序的运行方式以及内存管理机制有基本的了解。 一、NULL指针和零值指针(null pointer and zero value pointer) 我们查看一下C++标准库定义的NULL指针 // Define NULL pointer value #ifndef NULL # ifdef __cplusplus # define NULL 0 # else # define NULL ((void *)0) # endif #endif // NULL... 阅读全文

posted @ 2012-09-03 10:42 vivi_wind 阅读(344) 评论(0) 推荐(0) 编辑

摘要: 解决方法:sudo rm * -vf 在提示错误的文件夹内包含所有源中软件的信息,产生这类错误的原因是因为下载更新中发生了网络错误,从而使下载文件出错,导致了系统在搜索源信息时提示出错,因此只要把出错的文件删除然后重新更新软件信息即可解决。 在ubuntu内出现这类问题比较常见,通用的sudo rm * -vf是删除所有软件信息文件,如果出错的文件较少如本例中的只有一个,可以考虑只删除出错的文件以减少更新下载的时间。 阅读全文

posted @ 2012-09-03 08:14 vivi_wind 阅读(397) 评论(0) 推荐(0) 编辑

2012年9月2日

摘要: 原文地址:signed和unsigned之间作者:smart这样一个题,据说是微软面试题:unsigned int i=3;cout<<i * -1;问结果是多少。第一反应:-3。不过结果似乎不是这样的,写了个程序,运行了一下,发现是:4294967293。很诡异的一个数字,怎么也想不明白为什么会是这么个奇怪的数字。但是在我发现这数的十六进制数是FFFFFFFD时,我想我已经离答案很近了...这个涉及到了混合着不同数据类型的表达式中的数据类型的转换问题。在总结转换问题之前,先说明一下各种数据类型(只说明numeric类型的),下表来自MSDN:Type NameBytesOther 阅读全文

posted @ 2012-09-02 21:37 vivi_wind 阅读(745) 评论(0) 推荐(0) 编辑

2012年8月25日

摘要: 转自http://www.cnblogs.com/shiney/archive/2011/08/19/2145921.htmlhttp://www.cnblogs.com/pcwl/articles/2032148.htmlprintf函数称为格式输出函数,其关键字最末一个字母f即为“格式”(format)之意。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。在前面的例题中我们已多次使用过这个函数。printf函数调用的一般形式printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件。p 阅读全文

posted @ 2012-08-25 10:35 vivi_wind 阅读(677) 评论(0) 推荐(0) 编辑

2012年8月19日

摘要: 转自http://www.cnblogs.com/ggzss/archive/2011/08/18/2145017.htmlassert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#include <stdio.h> 阅读全文

posted @ 2012-08-19 09:05 vivi_wind 阅读(310) 评论(0) 推荐(0) 编辑

2012年8月17日

摘要: 转自http://blog.sina.com.cn/s/blog_4badbe8e0100qb0s.htmlA、数组名不是指针。B、数组名 是 不是指针的指针。数组名本质: (1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组; (2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量; (3)指向数组的指针则是另外一种变量类型(在WIN32平台下,长度为4),仅仅意味着数组的存放地址!解析:Achar str[10];char *pStr = str;sizeof(str);//值为10。对数组结构求长度。sizeof(pStr);//值为4。指针变量... 阅读全文

posted @ 2012-08-17 09:08 vivi_wind 阅读(1799) 评论(0) 推荐(0) 编辑

2012年8月16日

摘要: 数组名作函数的参数,必须遵循以下原则:(1)如果形参是数组形式,则实参必须是实际的数组名,如果实参是数组名,则形参可以是同样维数的数组名或指针。(2)要在主调函数和被调函数中分别定义数组。(3)实参数组和形参数组必须类型相同,形参数组可以不指明长度。(4)在C语言中,数组名除作为变量的标识符之外,数组名还代表了该数组在内存中的起始地址,因此,当数组名作函数参数时,实参与形参之间不是"值传递",而是"地址传递",实参数组名将该数组的起始地址传递给形参数组,两个数组共享一段内存单元,编译系统不再为形参数组分配存储单元。例9-15:分析程序的执行过程。#inc 阅读全文

posted @ 2012-08-16 16:09 vivi_wind 阅读(3528) 评论(0) 推荐(0) 编辑

摘要: 转自http://www.cnblogs.com/zxl2431/archive/2011/03/25/1995894.html1.多维数组元素的地址 关于这个我只是想说:骑白马的不一定是白马王子,还有可能是唐僧。 搞清多维数组的地址表示是最基本的,例如一个3*4的多维数组 a[3][4]={{1,3,5,7},{2,4,6,8},{9,11,13,15}}; 显然 a 是一个数组名,首先 a 中的一级元素并不是具体的数,而是3个一维数组( 即3行 a[0] , a[1] , a[2] )这三个元素每一个下面又包括 4 个元素 a[0][0],a[0][1],a[0][2],a[0][3... 阅读全文

posted @ 2012-08-16 16:00 vivi_wind 阅读(236) 评论(0) 推荐(0) 编辑