随笔分类 -  指针

摘要:看下面的例子: 例十七: char s='a'; int *ptr; ptr=(int*)&s; *ptr=1298; 指针ptr是一个int*类型的指针,它指向的类型是int。它指向的地址就是s的 阅读全文
posted @ 2011-06-12 22:46 我是一堆积木 阅读(257) 评论(0) 推荐(0)
摘要:可以把一个指针声明成为一个指向函数的指针。 int fun1(char*,int); int (*pfun1)(char*,int); pfun1=fun1; .... .... int a=(*pfun1)("abcdefg",7);//通过函数指针调用函数。 可以把指针作为函数的形参。在函数调用语句中,可以用指针表达式来作为 实参。 例十三: int fun(char*); int a; char str[]="abcdefghijklmn"; a=fun(str); ... ... int fun(char*s) { int num=0; for(int i=0;istrlen(s);i++ 阅读全文
posted @ 2011-06-12 22:44 我是一堆积木 阅读(172) 评论(0) 推荐(0)
摘要:如果对声明数组的语句不太明白的话,请参阅我前段时间贴出的文章。 数组的数组名其实可以看作一个指针。 阅读全文
posted @ 2011-06-12 22:43 我是一堆积木 阅读(184) 评论(0) 推荐(0)
摘要:可以声明一个指向结构类型对象的指针。 例十一: struct MyStruct { int a; int b; int c; } MyStruct ss={20,30,40};//声明了结构对象ss,并把ss的三个成员初始 化为20,30和40。 MyStruct *ptr=&ss;//声明了一个指向结构对象ss的指针。它的类型是 MyStruct*,它指向的类型是MyStruct。 int *pstr=(int*)&ss;//声明了一个指向结构对象ss的指针。但是它的 类型和它指向的类型和ptr是不同的。 阅读全文
posted @ 2011-06-12 22:43 我是一堆积木 阅读(225) 评论(0) 推荐(0)
摘要:一个表达式的最后结果如果是一个指针,那么这个表达式就叫指针表达式。 下面是一些指针表达式的例子: 例六: int a,b; int array[10]; int *pa; pa=&a;//&a是一个指针表达式。 int **ptr=&pa;//&pa也是一个指针表达式。 *ptr=&b;//*ptr和&b都是指针表达式。 pa=array; pa++;//这也是指针表达式。 阅读全文
posted @ 2011-06-12 22:42 我是一堆积木 阅读(246) 评论(0) 推荐(0)
摘要:这里&是取地址运算符,*是...书上叫做“间接运算符”。 &a的运算结果是一个指针,指针的类型是a的类型加个*,指针所指向的类型 是a的类型,指针所指向的地址嘛,那就是a的地址。 *p的运算结果就五花八门了。总之*p的结果是p所指向的东西,这个东西有这 些特点:它的类型是p指向的类型,它所占用的地址是p所指向的地址。 阅读全文
posted @ 2011-06-12 22:41 我是一堆积木 阅读(214) 评论(0) 推荐(0)
摘要:指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让 我们分别说明。 阅读全文
posted @ 2011-06-12 22:39 我是一堆积木 阅读(151) 评论(0) 推荐(0)
摘要:指针可以加上或减去一个整数。指针的这种运算的意义和通常的数值的加减 运算的意义是不一样的。例如: 例二: 1。 char a[20]; 2。 int *ptr=a; ... ... 3。 ptr++; 阅读全文
posted @ 2011-06-12 22:39 我是一堆积木 阅读(127) 评论(0) 推荐(0)