读书人

关于数组跟指针

发布时间: 2012-09-09 09:27:54 作者: rapoo

关于数组和指针

C/C++ code
#include <stdlib.h>int main(){    char *s;    s[2]='a';}

这是老师给的一个题目,问我们能否编译通过,能否运行,如果不能运行该怎么改。
我想了一下,觉得肯定编译不通过(实际在vc上面也是这样),自己给的理由是定义了一个地址,然后就用s[]是不是就错了?
话说[]是个运算符,是不是说明s[2]=*(s+2)?(数组里面应该是这样的吧、、);
还有,编译通过是个什么概念,是生成计算机识别的了的语言?那为什么编译通过还有可能出现不能运行的情况?
问题暂时这么多,请各位指点,谢谢!

[解决办法]
探讨

引用:

C/C++ code
#include <stdlib.h>
int main(){
char *s,buf[3];
s=(char *)buf;
s[2]='a';
}



赵老师的有个操作看不太懂:
既然上面已经声明:char buf[3];
那么buf就已经是一个(char *)型的指针了吧?为什么还要在进行约束或者改……

[解决办法]
探讨
引用:

C/C++ code
#include <stdlib.h>
int main(){
char *s,buf[3];
s=(char *)buf;
s[2]='a';
}

赵老师的有个操作看不太懂:
既然上面已经声明:char buf[3];
那么buf就已经是一个(char *)型的指针了吧?为什么还要在进行约束或者改变……

读书人网 >C语言

热点推荐