C语言指针变量可以当做数组吗?
11个回答
展开全部
比如说定义int *w
然后下边就可以用作w[i]
这么对吗?
对的话在什么情况下可以这么使用?
答:不可以,因为w这时还是野指针。只有这样
int *w,a[44];
w=a;
操作后才可以,操作w就与操作a一样了。而且,操作指针比直接操作数组名更方便,因为指针是变量,可以++、--,而数组名是常量,不能++、--。
你追问的那个红框框中的问题不是指针与数组名的问题,而是“形式参数”与“实际参数”的问题。写函数定义的()中的前面带类型说明符的变量名叫形式参数。形参与实参相比,最大的特点就是不用担心没有赋值或初始化就拿来引用,它们是留着调用时才用实参自动赋值的。而实参则不然,没有赋值时拿来做右值,就会被警告“引用了没有初始化的变量”,而且因为初值是随机的而结果一般都是错误的。
然后下边就可以用作w[i]
这么对吗?
对的话在什么情况下可以这么使用?
答:不可以,因为w这时还是野指针。只有这样
int *w,a[44];
w=a;
操作后才可以,操作w就与操作a一样了。而且,操作指针比直接操作数组名更方便,因为指针是变量,可以++、--,而数组名是常量,不能++、--。
你追问的那个红框框中的问题不是指针与数组名的问题,而是“形式参数”与“实际参数”的问题。写函数定义的()中的前面带类型说明符的变量名叫形式参数。形参与实参相比,最大的特点就是不用担心没有赋值或初始化就拿来引用,它们是留着调用时才用实参自动赋值的。而实参则不然,没有赋值时拿来做右值,就会被警告“引用了没有初始化的变量”,而且因为初值是随机的而结果一般都是错误的。
展开全部
C语言指针变量可以当做数组运用,在应用之前,应该先让指针指向一个数据块,可以是程序中的某个数组(这个就不说了),也可以指向一段新分配的内存空间;例如
#include <stdio.h>
#include <stdlib.h>
int main(){
int i,*p;
p=(int *)malloc(sizeof(int)*10); //分配10个整数的存储空间,p指针指向该空间
for(i=0;i<10;i++)
p[i]=i; //象平常数组一样访问p指向的存储空间
for(i=0;i<10;i++)
printf("%d ",p[i]);
free(p); //释放p指向的存储空间。
}
如果指向新的内存空间时,特别是在子函数中,注意灵活处理要不要释放该存储空间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以这么用。为w申请了内存空间或者让它等于另一个已有空间的指针。总之一句话,要有内存空间。
你调用这个函数的时候,是不是传的一个数组,或已申请空间的指针
你调用这个函数的时候,是不是传的一个数组,或已申请空间的指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询