[code]
#include
声明了数组,char s[200]; 编译这句程序,会报错: if(*s++ == '\t') 出错结果为: error: lvalue required as increment operand
要定义这个结构指针数组: p --> +-------------------+ . | int[10]的地址 . +-------------------+ . | int[10]的地址 . +-------------------+ . | int[10]的地址 . +-------------------+ . | n列 c语言怎么写,这样? int (*p)[10][n] 这个好像是指向二维数组的指针了。。
使用指针从函数返回一个数组
int (*func())[20];
func是一个函数,返回一个指向含20个int的数组的指针。
编译的时候出现这样的错误:
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
程序里哪里出现了问题呢?
[code]
#include
定义一个字符数组: char str[3]={'a','b','c'}; 定义一个指针数组: char *string[4]={"FORTRAN","PASCAL","BASIC","C"}; ------------------------------------------------------------------------ 既然字符数组元素存储的是字符,那指针数组元素为什么不存储指针?我在这里怎么也理解不了? :em14: [ 本帖最后由 光速 于 2008-12-18 16:25 编辑 ]
贴一段代码上来,分享自己的理解,大家可以讨论一下。
[code]
#include
先看一道题: 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 编辑 ]