0
点赞
收藏
分享

微信扫一扫

layui栅格布局设置列间距不起作用

苦茶如歌 2024-08-30 阅读 29

字符指针变量

在指针类型中我们知道有一种指针类型为字符指针char*
如果我们想用他

int main()
{
   char p  = 'w';
   char *d = &p;
   
   return 0;
}

他可以存放字符变量的地址

也可以这么使用

int main()
{
   
    char *d = "hello"
    
    return 0 ;
}

其本质是把字符串"hello"的首字符的地址储存到字符指针中,不是将整个字符串储存
就相当于将’h’的地址储存到字符 指针变量中

数组指针变量

之前我们学习了指针数组,就是指针作为元素储存在数组中

而现在的数组指针是一种指针变量
我们知道了整数指针变量int *,浮点型指针变量float *
数组指针变量就是:存放数组的地址,能够指向数组的指针变量

数组指针变量长int (*p)[i]这样
p先于*结合,说明p是一个指针变量,然后指针变量指向的是一个大小为i个整型的数组
([ ]的优先级要高于*号的,所以必须加上( )来保证p和*结合)

那么数组指针变量是怎么初始化的呢?

数组指针变量用来存放数组地址,那么怎么获得数组呢?

我们之前有讲过,&数组名就是数组地址,如果要存放数组地址就要存放到指针变量

int (*p) [8]= &arr

解析如下:
在这里插入图片描述

二维数组传参的本质

当二维数组语言传参给一个函数的时候,我们这样写

# include <stdio.h>

void test(int parr [3][5])
{
    ....
}
int main ()
{
   int arr[3][5]={{1}{2}{3}};
   test(arr)
    ...
   return 0;
}

这里的实参也是二维数组,形参也是二维数组的形式

我们之前讲解过,二维数组的数组名表示的是第一行的地址,是一维数组的地址,第一行的一维数组的类型就是int [5],所以第一行的指针类型就是int * [5],就意味着二维数组传参的本质上也是传递了地址,传递的地址就是第一行这个一维数组的地址

那么我们也能把形参改写成指针形式

# include <stdio.h>

void test(int (*p) [5])
{
    ....
}
int main ()
{
   int arr[3][5]={{1}{2}{3}};
   test(arr)
    ...
   return 0;
}

今天的知识密度很大,希望大家认真理解

今天的知识讲解完啦,如果觉得有用可以点一下赞和关注,也可以先收藏以防需要时找不到哦,当然如果作者写的哪里有问题欢迎指出,我们一起进步!!!

祝看到这里的人天天开心哦(笔芯)

举报

相关推荐

0 条评论