指针和数组名相互使用(C语言)

code:正常访问情况

#include <stdio.h>

int main(void)
{
	char *c;
	char arry[]="Hello,world!!";
	int len = sizeof(arry)/sizeof(arry[0]);
	c = arry;
	//可以用指针地址加上第几个来访问
	for(int i=0;i<len;i++){
		printf("%c  ", *(c+i));
	}
	putchar('\n');
	//可以跟数组一样当做下标进行访问
	for (int i=0;i<len;i++){
		printf("%c  ", c[i]);
	}
	putchar('\n');
	//通过指针自身++来改变指针本来的地址内存空间
	for(int i=0;i<len;i++){
		printf("%c  ", *c++);
	}
	putchar('\n');
	//对数组进行访问
	for(int i=0;i<len;i++){
		printf("%c  ", arry[i]);
	}
	putchar('\n');
	/*这一句下面答应的是未知量,
	此时的指针所处的地址空间是数组的最后一个字符的位置,
	在进行访问的只能访问到未知的量*/
	for (int i=0;i<len;i++){
		printf("%c  ", c[i]);
	}
	putchar('\n');
	//通过--是指针的地址空间处在数组的起始位
	for(int i=0;i<len;i++){
		printf("%c  ", *(--c));
	}
	
	return 0;
}

运行结果:

C:\Users\Administrator\Desktop\C_Study\新版本c语言\程序\unit6_pointer>a.exe
H e l l o , w o r l d ! !
H e l l o , w o r l d ! !
H e l l o , w o r l d ! !
H e l l o , w o r l d ! !
//这里是空格
! ! d l r o w , o l l e H

code:错误访问

指针的地址没办法给数组地址使用

int main(void)
{
	char *c="Hello,world!!";
	char arry[16]={0};
	int len = sizeof(arry)/sizeof(arry[0]);
	arry  = c;//error: assignment to expression with array type
	//只能数组的地址给指针操作,不能指针的地址给数组操作()
	for(int i=0;i<len;i++){
		printf("%c  ", arry[i]);
	}
	putchar('\n');
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值