C语言数组指针&字符串str

240 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一.指针数组

概念

  • 概念:用来存放指针的数组;注意是——数组 !

  • 区别:

int arr[10]={};//(1)
char ch[2]={};//(2)
int* parr[10];//(3)
char* pch[2];//(4)
  • 第一组表示整型数组;
  • 第二组表示字符数组;
  • 第三组表示存放整型指针的数组;
  • 第四组表示存放字符指针的数组;

简单代码

#include <stdio.h>
int main()
{
  int arr1[]={1,2,3};
  int arr2[]={2,3,4};
  int arr3[]={3,4,5};
  int i,j;
  int*parr[]={arr1,arr2,arr3};
  for(i=0;i<3;i++){
    for(j=0;j<3;j++){
      printf("%d",*parr[i]+j);
    }
    printf("\n");
  }
  return 0;
}

image.png

  • 注意:
  • 指针数组同样也可以存放数组名;

二.数组指针

概念

  • 概念:指向数组的指针,用来存放数组的地址;
  • 区别:
arr——首元素的地址;
&arr——首元素的地址;
&arr[0]——首元素的地址;
&arr——数组的地址;

一般格式

int arr[5]={};
char* (*parr)[5]=&arr;//数组指针的形式
  • char*——parr指向的数组的元素类型;
  • 括号中的 * 说明parr是指针,parr是指针变量的名字;
  • [5]说明parr指向的数组是5个元素;

&数组名 与 数组名 的区别

  • &数组名 表示数组的地址;

  • 数组名表示数组首元素的地址; 当两者加一的含义:

  • &数组名 + 1 ——>跳过一个数组

  • 数组名 + 1——>跳过一个元素

三.引号

  • 1.单行文本:'单引号' &"双引号"
  • 2.多行段落文本:"'三引号"'
'''
三引号实现
多行段落文本
'''

四.转义字符

  • 需要在字符串中使用特殊字符时,用反斜杠 \ 转义字符来表示;
转义字符描述
\ (在行尾时)续行符
\ \反斜杠符号
\ '单引号
\ "双引号
\ b退格
\ n换行
\ t横向制表符
\ r回车

三.字符串的格式化

1.%格式化

%s 字符串
%d 十进制整数
%f 浮点数

2.format方法

'{参数序号:格式化控制标记}'.format(填充内容)