![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 86
xujiangang_mmi
这个作者很懒,什么都没留下…
展开
-
12个有趣的C语言面试题
摘要:12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!1.gets()函数问:请找出下面代码里的问题:#include int main(void) { char buff[10]; memset(buff,0,sizeof(buff)); gets(buff); printf("\n The buffer转载 2012-09-08 10:55:59 · 225 阅读 · 0 评论 -
C语言中volatile关键字的作用
一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:原创 2012-12-27 14:43:00 · 274 阅读 · 0 评论 -
浅谈scanf和printf两个函数的返回值问题
跟同学探讨C问题,其中一个同学提及你们知道scanf和printf函数的返回值是什么吗?当时另外一个同学隐约回答了的样子,可是我是没有想过或是学习过这个东西,感觉蛮有意思,回过头来补习了一下。作为C标准输入输出函数,scanf和printf两个函数分别需要完成标准输入和输出,往往并不需要知道他们的返回值是什么,及时知道返回值是多少貌似用处也不大,所以这个问题玩玩被人忽略,也很少有人关心。首先来转载 2012-12-17 10:19:20 · 494 阅读 · 0 评论 -
C 语言内存分配
1 什么是野指针 前面我们把内存比作尺子,很轻松的理解了内存。尺子上的 0 毫米处就是内存的0 地址处,也就是 NULL 地址处。这条栓“野指针”的链子就是这个“NULL”。定义指针变量的同时最好初始化为 NULL,用完指针之后也将指针变量的值设置为 NULL。也就是说除了在使用时,别的时间都把指针“栓”到 0 地址处。这样它就老实了。2 栈、堆和静态区 静态区:保存自动全转载 2012-12-17 09:53:15 · 436 阅读 · 0 评论 -
C中Union的巧妙用法
C中Union的巧妙用法(转)1 union巧妙地实现多字节数据类型之间的转化在涉及音视频编解码算法中,经常会涉及一些数据压缩、声音解码、图象的缩放等问题。 这里通过一个例子来推荐一种union绝妙用法(这种方法由Equator公司提供,在我们公司的图象处理算法中用得很多)。在该例子中,利用union结构n64u实现占8个字节n64类型与单字节的c0~c7的相互转换,从而达转载 2012-12-17 09:50:47 · 574 阅读 · 0 评论 -
一道有趣的笔试题
题目:有一堆人围一圈,开始从1开始编号,每个人数到3的人,推出,然后继续从下一个1开始数数,直到剩下最后一个人。用编程实现。 #include#includeusing namespace std;//定义数据结构typedef struct personNode{ int num; struct personNode *next;}personNode;p转载 2012-12-17 09:51:20 · 284 阅读 · 0 评论 -
C 语言经典题目
C语言经典题目1 sizeof(int)*p表示什么意思? 留几个问题(讲解指针与数组时会详细讲解),32位系统下:int *p = NULL;sizeof(p)的值是多少?sizeof(*p)呢?int a[100];sizeof (a) 的值是多少?sizeof(a[100])呢?//请尤其注意本例。sizeof(&a)呢?sizeof(&a[0])呢转载 2012-12-17 09:52:18 · 446 阅读 · 0 评论 -
函数参数的传递问题(指针的指针)
程序1:void myMalloc(char *s) //我想在函数中分配内存,再返回{s=(char *) malloc(100);}void main(){char *p=NULL;myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么?if(p) free(p);}程序2:void myMalloc(char **s)转载 2012-12-17 10:18:01 · 248 阅读 · 0 评论 -
C 指针和数组
C 指针和数组1 指针 将指定的值存储到指定的地址: 例子: 将数据12345存储到指定的地址0x00000023 int *p = (int *)0x00000023; *p = 12345; 当然也可以简化写法: *(int *)0x00000023 = 12345;2 数组名a作为左值和右值的区别 简单而言,出现在赋值转载 2012-12-17 09:48:09 · 286 阅读 · 0 评论 -
关于一个int *ptr=(int *)(&a+1)问题的探讨
从网络上看到这样一道有意思的题目,是关于数组与指针的问题,描述如下:main(){int a[5]={1,2,3,4,5};int *ptr=(int *)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));}输出为:2,5请解释以上代码的输出结果。答案如下:*(a+1)其实很简单就是指a[1],输出为2.问题关键就在于第二个点转载 2012-12-17 10:16:56 · 282 阅读 · 0 评论 -
Linux下字符串转时间tm结构函数strptime
原型:char *strptime(const char *buf,const char *format,struct tm *timeptr)buf: tm格式化后的C字符串(以0结尾);format: 字符串格式,构建方式与strftime的format字符串完全一样;struct tm *time原创 2012-12-27 14:44:12 · 686 阅读 · 0 评论 -
c语言变参函数设计
在C语言中,函数参数的传递方式有值传和址传。值传是把实参的一个专用的、临时的复制值给被调函数中相应的形参被调用函数使用、修改这个传来的复制值,不会影响实参的值。址传则是把变量(实参)的地址传给被调函数。被调函数通过这个地址找到该变量的存放位置,直接对该地址中存放的变量的内容进行存取操作。因此,在被调用函数中可以修改实参的值。这也是函数参数址传的优点。无论是值传还是址传,都要求实参的数目及类型与形参原创 2012-12-27 14:36:25 · 351 阅读 · 0 评论 -
C和C++获取文件大小的方法总结
出处:http://hi.baidu.com/kofeffect/blog/item/cd040c2b2979d8fee6cd40c4.html1.MFC中的方法:(C++)CFileStatus status;CFile::GetStatus("D:\\test.txt",status);long lSizeOfFile;lSizeOfFile = status.m_size转载 2012-09-14 09:07:05 · 631 阅读 · 0 评论 -
关于C++中如何判断文件,目录存在的若干方法
出处:http://www.cnblogs.com/project/archive/2010/12/02/1894494.html在我们平时的编程时,经常需要判断文件或者目录是否存在,相对来说判断文件的存在性比较简单,目录则比较复杂。下面就详细的介绍几种方法。 首先关于判断文件的存在性:一、ifstream在C++中,可以利用ifstream文件输入转载 2012-09-14 09:06:24 · 306 阅读 · 0 评论 -
字节对齐
一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数转载 2012-09-14 09:11:24 · 213 阅读 · 0 评论