C语言知识
guoguo295
这个作者很懒,什么都没留下…
展开
-
C语言中 *.c和*.h文件的区别!
C文件就是C语言系列的源文件,而H文件则是C语言的头文件,即C系列中存放函数和全局变量的文件,因为C中的函数是被封装起来的,即无法看到其代码。 子程序不要定义在*.h中。函数定义要放在*.c中,而*.h只做声明.否则多引用几次,就会发生函数重复定义的错误。*.h只做声明,编译后不产生代码。这样做目的是为了实现软件的模块化,使软件结构清晰,而且也便于别人使用你写的程序。转载 2012-10-11 12:38:09 · 1430 阅读 · 0 评论 -
指针的故事一
我们知道 *表示一个指针, ()表示一个函数, [ ]表示一个数组。下面我们来看看各种各样的类型:int board[8][8]; //int数组的数组int **ptrl; //指向int的指针的指针int * risks[10]; //具有10个元素的数组,每个元素是一个指向int的指针转载 2013-12-06 17:57:35 · 654 阅读 · 0 评论 -
将数组中所有小于或等于0的元素都放在数组前面,大于0的元素放在数组后面
#include int main(){void func2(int array[],int n);int a[8]={10,-5,-6,9,8,0,6,-9};int i = 0;func2(a,8);for(i=0;iprintf("%d\n",a[i]);} return 0;}//将数组中所有小于或等于0的元素都放在数组前面,大于0原创 2013-12-12 17:05:58 · 4282 阅读 · 0 评论 -
如何用C语言获取当前系统时间?
#include #include void main (){time_t rawtime;struct tm * timeinfo;time ( &rawtime );timeinfo = localtime ( &rawtime );printf ( "\007The current date/time is: %s", asctime (timeinfo) );转载 2013-06-27 10:37:24 · 1207 阅读 · 0 评论 -
理解c和c++的复杂类型声明 (掺杂指针)
首先,让我们看看指针与const结合的声明:const int *p; //p是指向常整形的指针int const *p; //错误int * const p; //p是指向整形的常指针const int * const p; //p是指向常整形的常指针怎么样?希望大家不会搞混吧,下面我会告诉大家如何去理解,但是写到这里,我突然想起const的一些东转载 2013-05-01 11:43:48 · 615 阅读 · 0 评论 -
C经典面试试题二
试题二问答题1、局部变量能否和全局变量重名?2、如何引用一个已经定义过的全局变量?3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?4、动态连接库的两种方式?5、 int i=10, j=10, k=3; k*=i+j; k最后的值是?6、C++中什么数据分配在栈或堆中,New分配数据是在近堆还是远堆中?7、 什么是“转载 2013-04-29 16:47:01 · 693 阅读 · 0 评论 -
函数指针与指针函数
【函数指针】 在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1.函数指针定义函数类型 (*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外转载 2013-04-29 16:43:07 · 587 阅读 · 0 评论 -
经典c/c++面试笔试题
C/C++ 经典 面试题面试题1:变量的声明和定义有什么区别为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。面试题2:写出bool 、int、 f转载 2013-04-29 16:17:37 · 690 阅读 · 0 评论 -
透过笔试题看C中内存和指针的运用
最近答了7次笔试题,稍有些心得,企业再面试c语言不会像过去的那种读程序题写结果或者简单的函数编写,再或者 考你一些简单的逻辑,c的精华是内存和指针的运用,围绕这些我想写一些东西供自己总结和给同事们、同学们、学弟们参考。如下是常见到的笔试 题,如果有笔试,前一天看一遍这些题结果不会让你失望的。一、 想说一说关于集中数据类型的sizeof问题,这题出现率40%sizeof就是求在内存总占多转载 2013-04-29 15:36:33 · 788 阅读 · 0 评论 -
c经典面试试题<一>
试题一一、问答题1. 请简述static的作用?……………………………………………………………………… 3’2. 请简述volatile的作用?…………………………………………………………………… 3’3 头文件中ifndef / define / endif 是做什么用的?………………………………………… 3’4. #include 和 #in转载 2013-04-29 16:52:06 · 673 阅读 · 0 评论 -
嵌入式笔试试题1
1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有转载 2013-04-29 16:41:51 · 573 阅读 · 0 评论 -
学习指针-指针终极理解
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为si zeof(指针所指向的类型)的一片内存区。指针本身占了多大的内存?你只要用函数sizeof(指针的类型)测一下就知道了。在32转载 2013-04-29 15:39:53 · 543 阅读 · 0 评论 -
C笔试三
试题三的参考答案程序题1、输出:2,5程序题2、答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20 data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是 20 + 32 = 52.程序题3、请填写BOOL , float, 指针变转载 2013-04-29 16:49:12 · 620 阅读 · 0 评论 -
一道经典内存题
#define MEMSIZE 1024*1024int count = 0;void *p = NULL;while(1) { p = (void *)malloc(MEMSIZE); if (!p) break; printf("Current allocation %d MB\n", ++count);}2,whi转载 2013-04-29 16:13:33 · 679 阅读 · 0 评论 -
C笔试题(判断大端小端模式)
试题1:请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1解答:int checkCPU( ){ { union w { int a; char b;转载 2013-04-29 16:06:57 · 712 阅读 · 0 评论 -
C语言数据类型占字节数
一、程序运行平台 不同的平台上对不同数据类型分配的字节数是不同的。 个人对平台的理解是CPU+OS+Compiler,是因为: 1、64位机器也可以装32位系统(x64装XP); 2、32位机器上可以有16/32位的编译器(XP上有tc是16位的,其他常见的是32位的); 3、即使是32位的编译器也可以弄出6转载 2013-03-12 14:42:29 · 5794 阅读 · 0 评论 -
编程分别输入两个按从小到大排序的数组a和b,将这两个有序数组合并,使合并后的数组仍有序 (从小到大)
#include"stdio.h"main(){while(1==1){int a[5],b[5],c[10],i,j,k=0 ;printf("Enter a \n"); for(i=0; iscanf("%d", &a[i]);printf("Enter b \n"); for(i=0; iscanf("%d", &b[i]);i=j=0;w原创 2013-03-09 10:32:03 · 31050 阅读 · 1 评论 -
几个预编译指令的用法
几个预编译指令的用法 预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代转载 2012-10-28 15:53:35 · 742 阅读 · 0 评论 -
Linux下编译调试C程序(GCC,GDB)
GDB的命令很多,本文不会全部介绍,仅会介绍一些最常用的。在介绍之前,先介绍GDB中的一个非常有用的功能:补齐功能。它就如同Linux下 SHELL中的命令补齐一样。当你输入一个命令的前几个字符,然后输入TAB键,如果没有其它命令的前几个字符与此相同,SHELL将补齐此命令。如果有其它命令的前几个字符与此相同,你会听到一声警告声,再输入TAB键,SHELL将所有前几个字符与此相同的命令全部列出。而转载 2014-06-12 18:44:59 · 1246 阅读 · 0 评论