Ptr=NULL; //NULL在文件stdio.h中定义过。 Ptr=(unsigned int *)malloc(N*sizeof(int)); //注意一定是要开辟N个int型的字节长度,不然编译会出错。 //printf("%ld\n",Ptr); for(i=0;i { *(Pt...
分类:
其他好文 时间:
2015-04-16 01:30:25
阅读次数:
262
有时候错误的代码会让我们更深刻的理解一门编程语言,所以在Learn c the hard way一书中,作者不停的让我们把正确的代码破坏掉,发挥我们的好奇心与想象力,去发觉c语言的一些特性。 为了弄清弄清c中int与char型变量存储的异同和gcc对无'\0'字符数组的的反应,修改了Learn c ...
分类:
其他好文 时间:
2015-04-16 01:29:28
阅读次数:
449
/*merge sort*/#include using namespace std;const int max_num = 1000000000;void mergeData(int *s, int p, int q, int r){ int n1 = q - p + 1; int n...
分类:
编程语言 时间:
2015-04-16 01:27:56
阅读次数:
212
首先我们先看一下C程序的返回值处理情况,我们知道当C函数返回int等小型数据时直接将返回值放入eax寄存器。那当返回大的数据结构又是如何处理呢?看如下一段代码: #include typedef struct big_thing { char buf[128]; }big_thing; ...
分类:
其他好文 时间:
2015-04-16 01:22:02
阅读次数:
194
指针的初始化 指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。 对指针进行初始化时常用的有以下几种方式: 1.采用NULL或空指针常量,如:int *p = NULL;或 char *p = 2-2;...
分类:
其他好文 时间:
2015-04-16 01:20:37
阅读次数:
206
java对char类型的数据在底层是按int类型来处理的一、int类型与char类型在赋值是可自动转换。以上可以看出65被自动转换成unicode编所对应的字符,字符B被自动转换成unicode码二、字符类型的数值可进行数值运算如上所示,i的结果是66(在代码第5行,i=c+1=65+1=66),c...
分类:
其他好文 时间:
2015-04-16 01:18:36
阅读次数:
106
你有没有想过,对一个一维数组名取地址,然后用这个地址进行加减运算。这会出现什么样的结果呢? 示例: int a[5] = {1,2,3,4,5}; int *p = (int *)(&a+1); printf("%d\n",*(p-1)); 这个输出会是多少呢? 咦?为什么第二行需要强制...
分类:
编程语言 时间:
2015-04-16 01:14:21
阅读次数:
476
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该...
分类:
编程语言 时间:
2015-04-16 01:13:40
阅读次数:
199
那么,输出结果是多少呢? 答:当然是5。 为什么? 答:上面不是说了嘛,&a就是一个行指针,那就是指向一行的指针咯。行指针+1,不就指向下一行了,这里一行为[5]个,那么int *p = (int *)(&a+1)就要在a的基础上偏离5个位置:(如下:上一行表示偏离位数,下一行表示a[]中对应...
分类:
移动开发 时间:
2015-04-16 01:12:53
阅读次数:
177
1 #include 2 int main() 3 { 4 int a; 5 printf("输入一个数,程序将给出它的质数分解。\n"); 6 scanf("%d",&a); 7 printf("a="); 8 int i=2; 9 while(...
分类:
其他好文 时间:
2015-04-16 01:12:49
阅读次数:
154