通过指针的指针,以及一个指针数组,对实际数组元素进行排序,有一个优点,就是排序过程交换的只有指针数组中的值,而不是实际的数组的元素.当实际元素中的对象很大,特别是结构体等类型时,这样做是很有好处. 下面的图表示了排序前和排序后,内存中的变化情况: 以下代码是上图的实现: 1 #include...
分类:
编程语言 时间:
2014-10-30 01:32:38
阅读次数:
186
一、sizeofsizeof(...)是运算符,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大校由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大校实际上,用sizeof来返回类型以及静态分配的..
分类:
其他好文 时间:
2014-10-29 19:49:20
阅读次数:
154
代码如下:#include
int main(void)
{
int a[5] = {1, 2, 3, 4, 5};
int *ptr = (int *)(&a+1);
int *p1 = a;
int *p2 = &a[0];
int *p3 = (int *)(&a);
if(p1 == p2){
printf("p1 == p2\n");
}else{
pr...
分类:
编程语言 时间:
2014-10-28 00:54:18
阅读次数:
165
数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。 如要将二维数组赋给一指针,应这样赋值: int a[3][4]; int (*p)[4]...
分类:
编程语言 时间:
2014-10-24 12:17:34
阅读次数:
158
指针数组 && 数组指针
char (*ptr)[5]; //定义一个指向数组指针ptr,指向包含5个char类型的数组
char *a[5]; //定义一个指针数组a,包含5个char*类型指针
#include
int main(void)
{
char *a[5]={"red","white","blue","dark","green"};
print...
分类:
编程语言 时间:
2014-10-21 12:15:22
阅读次数:
182
平时学术必须用Python多啊,但校招笔试绕不开语言基础,非cs科班小弱临阵整理些C++题备考。很弱很苦逼。。。一、指针1.二维数组指针#includeint main(int args,char ** argv){ int map[3][3]={ {1,...
分类:
编程语言 时间:
2014-10-20 18:46:18
阅读次数:
229
1、 sizeof:
sizeof(...),是一个运算符,定义为unsigned in类型,其大小在编译期间决定的,参数可以是基本数据类型、数组、指针、对象、函数等。
功能:获得保证能容纳实现所建立的最大对象的字节大小。
数组:数组所占空间字节数:
指针:存储该指针所用的空间大小
对象:该对象所占内存空间大小
二、strlen:
strlen(...)是...
分类:
其他好文 时间:
2014-10-19 00:04:52
阅读次数:
215
指针数组数组指针的区别这两个概念极易混淆,可以用以下方式辅助理解:指针数组整形数组字符数组由此可知,指针数组的含义为数组,数组元素为指针类型示例:Char*p[2]={“ab”,”cd”};数组指针整形指针字符指针由此可知,数组指针的含义为指针,此指针所指的为数组示例:Char(*p)[2];Cha...
分类:
编程语言 时间:
2014-10-18 00:42:30
阅读次数:
313
1 // 数值指针和指针数组 2 // C语言环境 3 4 #include "stdafx.h" 5 6 int main(int argc, char* argv[]) 7 { 8 //数组指针,是一个指针. 这个指针指向一个数组. 9 //指针数组,是一个数组. 这个数组...
分类:
编程语言 时间:
2014-10-17 23:11:08
阅读次数:
245
先回顾一下二维数组的写法: 1. int array[3][4]; 2. int array[][4]; 3. int (*array)[4];不管怎么样,二维的长度是不能省略的,多维数组(不管二维,三维,四维。。。)最多只能省略第一维的长度;比较好玩的是第三种:注意两种不同: int (*arra...
分类:
编程语言 时间:
2014-10-14 14:48:28
阅读次数:
175