C系列:指针与数组

在C中,数组与指针容易混淆,看过文档之后,我把我自己关于数组与指针的理解写下来。
[quote]数组与指针的主要区别在于:
1、数组在声明的时候就要分配SIZE,但指针不用;
2、数组通过下标来访问里面的元素,指针通过移动地址指向访问里面的存储元素;
3、数组一旦声明,它的SIZE是固定的,但指针是变动的;
4、指针只存储地址,它不能被赋值,而可以对数组可以赋值。
e.g.
int i = 10; int *p; p = &i; (指针p传地址)
int arr[] = {1, 2, 23}(数组arr赋初值))
[/quote]
[quote]char * a[10]; /* 分配存储大小,它是数组,但里面存放着整形指针 */
char * b[]; /* 参数传递,它即是数组又是指针 */
void writelines(char *str[], int n) {
int i;
for (i = 0; i < n; i++) {
printf("%s\n", str[i]); //这是数组的写法,编译器把它作为数组来处理
}
for(i=0; i<n; i++) {
printf("%s\n", *str++); //这是指针的写法,如果它仅仅是数组的话,这样写明显是错误的,但在这里编译器把它作为指针来处理
}
}

void writeArray() {
char * str[] = {"aaaa1","bbbb2","cccc3","dddd4","eeee5","ffff6","gggg7"}; //这是数组
int i;
for(i=0; i<7; i++) {
printf("%s\n", str[i]); /*数组的处理方式*/
}
for(i=0; i<7; i++) {
printf("%s\n", *str++); /*指针的处理方式,但这里是数组,所以编译器报错*/
}
}[/quote]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值