指针数组

(1)int *a[10]; (指针数组:里面存放指针的数组)定义一个数组a,由10个元素组成, 每个元素都是int *指针。

a[0] 、a[1]等里面存放的都是指针即地址,*a[0]  *a[1] 里面存放的是int型的数值。

(2)char *str[10]; 数组str,由10个元素组成, 每个元素都是char *指针。

srt[0]  str[1] 里面存放的是指针即地址


测试用例:

#include <stdio.h>
#include <string.h>


int main(void)
{
        int *a[3];
        char *str[2];
        int i = 1, j = 2, k = 3;
        char s1[] = "hello";
        char s2[] = "world";
        a[0] = &i;      //注意这里不能写成*a[0] = i; *a[1] = j;*a[2] = k;因为int *a[3] 只是定义了指针数组,a[0]里面并没有存放地址,否则运行是会出现segment fault;
        a[1] = &j;
        a[2] = &k;
        str[0] = s1;
        str[1] = s2;
        printf("address:\n");
        printf("a[0]:%08x\na[1]:%08x\na[2]:%08x\n",(unsigned int)a[0],
                        (unsigned int)a[1],(unsigned int)a[2]);
        printf("str[0]:%08x\nstr[1]:%08x\n",(unsigned int)str[0],
                (unsigned int)str[1]);
        printf("value:\n");
        printf("*a[0]:%d\n*a[1]:%d\n*a[2]:%d\n",*a[0],*a[1],*a[2]);
        printf("*str[0]:%s\n*str[1]:%s\n",str[0],str[1]);
        return 0;
}
xiaolu@ubuntu:~/ccode$ gcc -g aa.c -o aa.o
xiaolu@ubuntu:~/ccode$ ./aa.o 
address:
a[0]:bfe9bc9c
a[1]:bfe9bc98
a[2]:bfe9bc94
str[0]:bfe9bc8e
str[1]:bfe9bc88
value:
*a[0]:1
*a[1]:2
*a[2]:3
*str[0]:hello
*str[1]:world

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值