c
文章平均质量分 71
qmsggg
ubuntu爱好者
展开
-
宏和函数在同名在一个头或者一个文件的作用
当宏和函数同名在一个文件中时,那么函数将被宏替换掉,执行宏的内容,因为宏在预编译时已经将内容替换。一般这种写法都是用作注释函数的作用。例子:#include "stdio.h"void p(int a,int b,int c){ printf("%s","test");}#define p(a,b,c)({(void)b,NULL;printf("%s","aaaa原创 2013-10-04 22:10:59 · 1045 阅读 · 0 评论 -
const的思考
1、什么是const? 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:)2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。3、cons有什么主要的作用? (1)可以定义const常量,具有不可变性。 例如:转载 2014-08-22 21:38:30 · 393 阅读 · 0 评论 -
C语言中可变参数函数实现原理
C语言中可变参数函数实现原理C函数调用的栈结构 可变参数函数的实现与函数调用的栈结构密切相关,正常情况下C的函数参数入栈规则为__stdcall, 它是从右到左的,即函数中的最右边的参数最先入栈。例如,对于函数: void fun(int a, int b, int c) { int d; ... }其栈结构为转载 2014-08-22 14:11:27 · 570 阅读 · 0 评论 -
内存堆和栈的区别
内存堆和栈的区别原文: http://student.csdn.net/link.php?url=http://www.top-e.org%2Fjiaoshi%2Fhtml%2F427.html在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这转载 2014-08-22 21:17:55 · 438 阅读 · 0 评论 -
对#define和inline的一点理解
#include using namespace std;#define f(a) (a)+(a)int main(){ double a = 4; printf("%lf %d\n", f(a), f(a)); return 0;}原创 2014-09-05 19:59:34 · 588 阅读 · 0 评论 -
谁说C语言很简单?
谁说C语言很简单C语言并不简单,让我们来看看下面这些示例:为什么下面的代码会返回0?(这题应该很简单吧) int x; return x == (1 && x);本题主要是关于C/C++中变量初始化的问题。 为什么下面的代码会返回0而不是-1? return ((1 - sizeof(int)) >> 32);答案:sizeof 是一个uns转载 2014-04-11 13:31:55 · 769 阅读 · 0 评论 -
C语言的谜题
C语言的谜题2009年5月31日陈皓发表评论阅读评论68,615 人阅读 这几天,本站推出了几篇关于C语言的很多文章如下所示:语言的歧义 [酷壳链接] [CSDN链接]谁说C语言很简单? [酷壳链接] [CSDN链接]6个变态的C语言Hello World程序 [酷壳链接] [CSDN链接]如何加密/弄乱C源代码 [酷壳链接] [CSDN链接]C语转载 2014-04-11 13:00:53 · 714 阅读 · 0 评论 -
语言的歧义
语言的歧义语言是人与人相互沟通的途径,而计算机语言则是人和计算机沟通的途径。就算是任何再完美的自然语言都会有歧义,但是又是什么让人和计算计算机间产生了歧义呢?下面这篇文章来自Gowri Kumar的Puzzle C一文。我做了一些整理,挑选了其中的一些问题,并在之后配上相应的答案(这些答案是我加的,如果需要原版的答案可以直接和本文作者Gowri Kumar联系,作者的联系方式可以从这里转载 2014-04-11 13:26:45 · 987 阅读 · 0 评论 -
基于指针的数据类型与指针运算小结
以下是对指针的数据类型与指针运算进行了详细的总结介绍,需要的朋友可以过来参考下1.指针的数据类型小结有关指针的数据类型 定义含义int i;定义整形变量int *p;定义只想整型数据的指针变量pint a[n];定义整形数组a,它有n个元素转载 2013-10-06 22:16:11 · 845 阅读 · 0 评论 -
数组指针和指针数组的区别
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;原创 2013-10-06 18:43:45 · 549 阅读 · 0 评论 -
用typedef定义类型的总结分析
除了可以直接使用C提供的标准类型名(如:int ,char ,float,double,long等)和自己声明的结构体、共用体、枚举类型外,还可以使用typedef声明 新的类型名 来代替 已有的 类型名如:typedef int INTEGER;typedef float REAL;指定用INTEGER代表int类型,REAL代表float类型,这样,下面的两行等价:1)in原创 2013-10-07 11:53:51 · 1122 阅读 · 0 评论 -
输入一个字符串,取出其中的整数(实现代码)
输入一个字符串,内含所有数字和非数字字符。将其中连续的数字作为一个整数,依次存放到一个数组中,统计共有多少个整 数,并输出这些数题目:输入一个字符串,内含转载 2013-10-06 22:54:13 · 3701 阅读 · 0 评论 -
C语言中基础小问题详细介绍
1、printf格式输出函数 如果格式控制说明项数多于输出表列个数,则会输出错误数据;如果输出表列个数多于格式控制说明数,则多出数不被输出。%md,m指的是输出字段的宽度。如果输出字段位数小于m,则左端以空格补齐,若大于m,则按照实际位数输出。%-md,基本同上,只不过不同之处在于,空格在右端补齐printf参数可以是常量,变量或表达式,VC++ 6.0中采用从右向左顺序求值,转载 2013-10-06 18:47:34 · 839 阅读 · 0 评论 -
如何通过函数指针调用函数(实现代码)
指针可以不但可以指向一个整形,浮点型,字符型,字符串型的变量,也可以指向相应的数组,而且还可以指向一个函数说明:指针可以不但可以指向一个整形,浮点型,字符型,字符串型的变量,也可以指向相应的数组,而且还可以指向一个函数。一个函数在编译的时候会被分配给一个入口地址。这个函数入口地址称为函数的指针。可以用一个指针变量指向函数,然后通过该指针变量调转载 2013-10-06 21:59:43 · 1369 阅读 · 0 评论 -
共用体的定义与应用详细解析
共同体的定义类似结构体,不过共同体的所有成员都在同一段内存中存放,起始地址一样,并且同一时刻只能使用其中的一个成员变量定义:使用覆盖技术,几个变量相互覆盖,从而使几个不同变量共占同一段内存的结构,成为共同体类型的结构。共同体的定义类似结构体,不过共同体的所有成员都在同一段内存中存放,起始地址一样,并且同一时刻只能使用其中的一个成员变量。转载 2013-10-07 11:45:30 · 6316 阅读 · 0 评论 -
char str[] 与 char *str的区别详细解析
以下是对char str[]与char *str的区别进行了详细的介绍,需要的朋友可以过来参考下复制代码代码如下:char* get_str(void) { char str[] = {"abcd"}; return str; }char str[] = {"abcd"};定义了一个转载 2013-10-06 19:46:21 · 1003 阅读 · 0 评论 -
关于数组指针和指针数组
在C/C++的编程中,对指针的使用和了解,再熟悉都不为过。C/C++毫无疑问的十分强大,但离开了指针和数组,它们就什么都干不了了,可见其重要。 使用数组和指针来描述数据,是C/C++编程中最常见的工作。本文通过一个描述二维数据的问题,来回顾下数组和指针的使用。 假设我们要表示的是一个5行3列的数据,则共有如下五种常用方式。每种方式原创 2013-10-05 09:56:56 · 741 阅读 · 0 评论 -
realloc函数
2009-10-12 16:08 963人阅读 评论(1) 收藏 举报leakincludenull[cpp] view plaincopyinclude "stdlib.h" #include "stdio.h" void main() { int *i = (int*)malloc(sizeof(int)); *i = 1; //原创 2014-09-03 15:48:34 · 544 阅读 · 0 评论