C语言中数组和指针的区别

    参考以下代码,帮助理解C语言的数组和指针的区别。

#include <stdio.h>
#include <stdlib.h>

int main(
	const int argc,
	const char *argv[]
	)
{
	// 声明整形数组,有10个元素
	int array[10];
	// 声明指向整形的指针
	int *p_int;
	// 声明指向有10个整形元素的指针
	int(*p_array)[10];

	// 指向数组的第一个元素
	p_int = array;
	printf("p_int=%p array=%p &array[0]=%p p_int+1=%p\n", p_int, array, &array[0], p_int + 1);

	// 以下这句是错误的代码,类型不匹配
	//p_array = array;
	// 注意这里的赋值,用了&
	p_array = &array;
	printf("p_array=%p array=%p &array[0]=%p p_array+1=%p\n", p_array, array, &array[0], p_array + 1);

	getchar();
	return 0;
}

输出结果:

p_int=0019FAF4 array=0019FAF4 &array[0]=0019FAF4 p_int+1=0019FAF8 注意p_int+1增加了int大小的字节数。
p_array=0019FAF4 array=0019FAF4 &array[0]=0019FAF4 p_array+1=0019FB1C 注意p_array+1增加了整个数组的大小的字节数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值