指向字符串的指针变量如:char *a,可以再被当成数组名称用吗,如:a[0]

我想请分析下,指向字符串的指针变量如:char *a,可以再被当成数组名称用吗,如:a[0]
最新回答
燕如兮

2024-11-07 04:03:23

可以啊,你可以先定义一个char型数组比如 char b[3] = {'a','b','c'};
然后a=b; 此时a[0]就是字符'a'
追问
麻烦先看懂题目 别浪费提问者的宝贵时间 OK?
追答
麻烦你以后写清楚点,别浪费回答者的宝贵时间 OK?
追问
嗯 还是谢谢你
释放

2024-11-07 12:29:28

两个名字一样当然不行。。。。。。。。。。。。。。。。。但 是你char *a定义 了a可以用a[0]的这个用法,,,,前提是有空间。。
追问
当然是一样啊 不一样这个问题就没有意义了不是吗
我的意思是,先定义了一个字符串指针 char *a,然后能不能把a当做一个数组名进行操作,而不是用*a++之类的去用
追答
可以,,,,
如:
int i;
char *a;
a=(char *)malloc(10);
for(i=0;i<10;i++)
a[i] = 'a';
for(i=0;i<10;i++)
printf("a[i] = %c",a[i]);
枕边徒留芳香

2024-11-07 13:27:36

你没搞清楚指针和数组名称的关系和区别.

仅从问题的角度来看,回答是可以的.
追问
是啊 就是因为认识有点模糊才会有问题呀  能给我讲一下吗 求指教!
追答
看1楼的例子吧

只有指针a指的有空间,a++.a[i]这样的操作才有意义
如果a只是一个单纯定义的指针,这样的操作是没有意义的
春夜浅

2024-11-07 00:42:47

当然可以啊
惊蛰

2024-11-07 02:58:26

可以啊!