定义一个字符数组: char str[3]={'a','b','c'}; 定义一个指针数组: char *string[4]={"FORTRAN","PASCAL","BASIC","C"}; ------------------------------------------------------------------------ 既然字符数组元素存储的是字符,那指针数组元素为什么不存储指针?我在这里怎么也理解不了? :em14: [ 本帖最后由 光速 于 2008-12-18 16:25 编辑 ]
先看一道题: int main() { int a[5] = {1,2,3,4,5}; int *p = (int *) (&a+1); printf("%d %d", *(a+1), *(p-1)); return 0; } 程序输出 2 5 。 我在网上看到一篇文章说数组名是一个常量,它的内容就是数组的首地址。 *(a+1)就是数组第二个元素,(&a+1)中的&a取出来的也是数组首地址啊, 为什么带有类型信息? 同样,将数组作为参数传到一个函数里: int foo (int []a) 与 int foo(int (&a)[] )也不同,...
定义一个指针数组 char *p[3]; 然后对其赋值 printf("%s",p[1]); 报错 但是改成 printf("%s",&p[1]); 就可以了 为什么?p[1]不就是一个指针吗?为什么操作的时候又和指针不一样? PS: [code] char *eth[10]; int i=0; FILE *PP; PP=fopen("/home/ip3.txt","r"); fgets(ð[0],15,PP); printf("%s",ð[0]); [/code] [ 本帖最后由 bluecase 于 2008-10-31 15:52 编辑 ]
指针没学好,请指点迷津,谢谢! char s1[]="student"; char *s2=s1; char *s3="teacher"; *(s1+2)='M'; //正确 *(s2+2)='M'; //正确 *(s3+2)='M'; //运行时出错 请问 char s1[] 与 char *s3 的区别在那里? 字符数组与字符串指针的区别在哪里? 这样赋值为什么会出错? 谢谢! [ 本帖最后由 zhaocong94005 于 2008-4-1 09:53 编辑 ]
指针与数组 A.一维数组 数组实际上仅仅是一种表达形式,在内部是被重新转换成指针的。 int ia0[5]; int ia1[5]={0,1,2,3,4}; 访问方式: ia1[3] *(ia1+3) 这两种都可以访问到数组ia1位置3的元素。 int * pi=ia1; 同样也可以 *(pi+3) 进...
#include
看了 http://www.cublog.cn/u/14063/?u=http://www.cublog.cn/u/14063/showart.php?id=80275 http://blog.csdn.net/megaboy/archive/2005/09/17/482782.aspx http://www.2ok.cn/more.asp?name=conip&id=7255 后 有点迷糊。。请大家指点下。。
#include
请各位大侠多多指点
#include