不分配内存难道就不能用内存吗?
>>>>>> 我的迷惑,编译器到底想要什么样的信息,
何时它才非需要malloc来分配内存,
比如 我们定义 int *a[10],b,c;
a[0]=&b;a[1]=&c;
a[2]=(int*)malloc(sizeof(int)*5);
*a[0]=5;
大家看,数组a的前两个元素不用分配内存,就象int a=10;
int a[5];a[1]=2...等等一样自然,
直接写就好了,后面5个却分配了内存,为什么?
到底什么时候才真的需要动态分配,就是要用malloc
>>>> 有关指针初始化,int a;int *p;
p=&a;//right
为什么如果是p=10就不对呢??这样不也是初始化吗?
比如那个做swap的函数,swap(int *p1,int *p2){
int*temp;
*temp=*p1;//有问题吗?系统自然会给
*p1=*p2; temp有个地址,现在只用它所
*p2=*temp; 的值就可以,temp的地址始终是
不变的,不知道具体多少没关系啊
>>>>>>有关指针数组,
比如 char *argv[], 定义了一个数组的指针,每个指针都可以指向一个字符,
然后可以通过指针的运算得到一个字符串
那 int * a[], a中每个元素都可以指向一个整数,并且应该通过指针运算
也该得到它相邻的整数啊,可是结果行不通,
为什么?? c编译器并没有类型检查的