C语言指针变量可以当做数组吗?

[复制链接]
查看11 | 回复5 | 2013-4-9 00:12:04 | 显示全部楼层 |阅读模式
比如说定义int *w然后下边就可以用作w这么对吗?对的话在什么情况下可以这么使用?答:不可以,因为w这时还是野指针。只有这样int *w,a[44];w=a;操作后才可以,操作w就与操作a一样了。而且,操作指针比直接操作数组名更方便,因为指针是变量,可以++、--,而数组名是常量,不能++、--。你追问的那个红框框中的问题不是指针与数组名的问题,而是“形式参数”与“实际参数”的问题。写函数定义的()中的前面带类型说明符的变量名叫形式参数。形参与实参相比,最大的特点就是不用担心没有赋值或初始化就拿来引用,它们是留着调用时才用实参自动赋值的。而实参则不然,没有赋值时拿来做右值,就会被警告“引用了没有初始化的变...
回复

使用道具 举报

千问 | 2013-4-9 00:12:04 | 显示全部楼层
C语言指针变量可以当做数组运用,在应用之前,应该先让指针指向一个数据块,可以是程序中的某个数组(这个就不说了),也可以指向一段新分配的内存空间;例如#include #include int main(){int i,*p;p=(int *)malloc(sizeof(int)*10); //分配10个整数的存储空...
回复

使用道具 举报

千问 | 2013-4-9 00:12:04 | 显示全部楼层
可以的,你可以先定义一个变量m,给他赋值,然后就可以这样:int *w=new int[m];由于m值可以改变多以这相当于定义了一个动态数组。...
回复

使用道具 举报

千问 | 2013-4-9 00:12:04 | 显示全部楼层
可以吧,指针是地址。int *w表示指向整形数据的指针;当其所指向的地址为某int型数组首地址时,如:int a[10];w=a;此时w可以如所想当数组用,但它跟数组还是有本质的区别,我们一般都将数组名作为常量指针来处理的。而w的指向是可变的,所以我们一般都不会将指针当数组用,因为不安全,当然也可以用const加以修饰,但不如直接用数组来的直观。指针操作数组...
回复

使用道具 举报

千问 | 2013-4-9 00:12:04 | 显示全部楼层
可以这么用。为w申请了内存空间或者让它等于另一个已有空间的指针。总之一句话,要有内存空间。你调用这个函数的时候,是不是传的一个数组,或已申请空间的指针...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行