指针进阶(1)

简介: 指针进阶(1)

一、字符指针

普通用法:指向一个字符

int main()
{
  char ch = 'w';
  char* pc = &ch;
  *pc = 'm';
  printf("%c\n", ch);
  return 0;
}

特殊用法:存入字符串

image.png

此时将一个字符串存入一个字符指针,本质上是把这个字符串的首字母的地址存放到字符指针。

TIP:C语言如何打印字符串?

默认给出首元素地址,并用%s打印即可。

image.png

一道笔试题:

image.png

TIP:常量字符串

字符常量 : 由一对单引号括起来的单个字符,如'a', 'B'

字符串常量: 由一对双引号括起来的多个字符的序列,如"a",“I Love u”

注意字符串常量表示不可更改

解析:

数组是先开辟空间再存放内容,内容一样但是地址不同。

指针是先有内容再用指针去指向内容的首地址,所以内容相同地址也相同。

image.png

二、指针数组

概念:指针数组是一个存放指针的数组。

指针数组的使用:

int main()
{
  int arr1[] = { 1,2,3,4,5 };
  int arr2[] = { 2,3,4,5,6 };
  int arr3[] = { 3,4,5,6,7 };
  int* arr[3] = { arr1,arr2,arr3 };
  for (int i = 0;i<3; i++)
  {
    for (int j=0;j<5;j++)
    {
      printf("%d ", *(arr[i] + j));
    }
    printf("\n");
  }
  return 0;
}

TIP:arr[2]和2[arr]

int main()
{
  int arr[4] = { 1,2,3,4 };
  printf("%d\n", arr[2]);
  printf("%d\n", 2[arr]);
  return 0;
}

输出结果一样!

理解:【】就是一个二元操作符,并且支持交换律

相关文章
|
6月前
|
C语言
指针进阶(C语言终)
指针进阶(C语言终)
|
6月前
|
机器学习/深度学习 搜索推荐 算法
【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题
【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题
|
6月前
|
C语言
指针进阶(回调函数)(C语言)
指针进阶(回调函数)(C语言)
|
6月前
|
存储 C语言 C++
指针进阶(函数指针)(C语言)
指针进阶(函数指针)(C语言)
|
6月前
|
编译器 C语言
指针进阶(数组指针 )(C语言)
指针进阶(数组指针 )(C语言)
|
6月前
|
搜索推荐
指针进阶(2)
指针进阶(2)
52 4
|
6月前
指针进阶(3)
指针进阶(3)
44 1
|
6月前
|
C++
指针进阶(1)
指针进阶(1)
47 1
|
6月前
|
存储 安全 编译器
C++进阶之路:何为引用、内联函数、auto与指针空值nullptr关键字
C++进阶之路:何为引用、内联函数、auto与指针空值nullptr关键字
50 2
|
7月前
|
C语言
C语言进阶:进阶指针(下)
C语言进阶:进阶指针(下)
51 2