关于char *a [ ]的讲解例子

这篇博客深入探讨了C语言中的指针数组,特别是如何使用它们来存储和打印字符串。通过示例代码,解释了数组名作为地址的概念,以及`printf()`函数如何处理这些地址以显示字符串。博客还展示了不同指针运算如何访问数组元素,并演示了如何通过指针访问和打印字符串中的特定字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先char *a [ ]是一个指针数组,理解下面例子有两点基础:

  1. 数组的名就是数组的地址
  2. printf()接收到地址会将地址上存的连续的字符串打印出来
#include <stdio.h>

int main()
{
    char *a [ ] = {"China","French","America","German"};

    printf("数组所在地址:");
    printf("%p \n",a); 

    printf("数组中第一个元素所在,即数组地址:");
    printf("%p \n",&a[0]); 

    printf("数组中元素(指针所指地址):");
    printf("%p %p %p %p\n",a[0],a[1],a[2],a[3]);
    
    printf("数组中第一个元素(指针)所指地址:");
    printf("%p \n",a[0]); 
    
    printf("数组中第一个元素(指针)所指地址中存放的元素(只是字符串的第一个字符):");
    printf("%c \n",*a[0]); 
    
    printf("数组地址取值(第一个元素,即第一个指针地址)对应的字符串:");
    printf("%s \n",*a); 

    printf("数组地址移位取值(第二个元素,即第二个指针地址)对应的字符串:");
    printf("%s \n",*(a+1)); 

    printf("数组第一个元素(指针)所指位置上对应的字符串:");
    printf("%s \n",a[0]); 

    printf("数组第一个元素(指针)所指位置上对应的字符串中第一个字符:");
    printf("%c \n",a[0][0]); 

    printf("数组第二个元素(指针)所指位置上对应的字符串中第二个字符:");
    printf("%c \n",a[1][1]); 

    return 0;

}

结果如下:

数组所在地址:000000000061FE00
数组中第一个元素所在,即数组地址:000000000061FE00
数组中元素(指针所指地址):0000000000404000 0000000000404006 000000000040400D 0000000000404015
数组中第一个元素(指针)所指地址:0000000000404000
数组中第一个元素(指针)所指地址中存放的元素(只是字符串的第一个字符):C
数组地址取值(第一个元素,即第一个指针地址)对应的字符串:China
数组地址移位取值(第二个元素,即第二个指针地址)对应的字符串:French
数组第一个元素(指针)所指位置上对应的字符串:China
数组第一个元素(指针)所指位置上对应的字符串中第一个字符:C
数组第二个元素(指针)所指位置上对应的字符串中第二个字符:r

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值