当前位置: 首页 > news >正文

电气工程专业毕业设计代做网站关键词工具

电气工程专业毕业设计代做网站,关键词工具,万网网站备案,重庆市门户网站制作个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 1.字符指针 2.指针数组 3.数组指针 4.数组传…

个人主页:点我进入主页

专栏分类:C语言初阶      C语言程序设计————KTV       C语言小游戏     C语言进阶

欢迎大家点赞,评论,收藏。

一起努力,一起奔赴大厂。

目录

1.字符指针

2.指针数组

3.数组指针

4.数组传参和指针传参

4.一维数组传参

4.2二维数组传参

4.3一级指针传参

4.4二级指针传参

5.函数指针


          今天我主要给大家带来的是关于指针进阶的部分,对于指针初阶还有疑问的小伙伴们可以点击指针的部分应用和指针基础进行学习,经过初阶指针的学习我们知道指针就是一个变量,是用来存放地址的;指针的大小在不同机器中也不相同,在32位机器中占用4个字节,在64位机器中占用8个字节;指针是有类型的;指针的运算等知识,今天主要学习的是字符指针,数组指针,指针数组,数组传参和指针传参,函数指针这几部分。

1.字符指针

        整形指针是指整形的指针,那么我们可以认为字符指针是指字符类型的指针,具体的表达方式我们看以下代码:

#include<stdio.h>
int main()
{char a = 'A';char* p = &a;char arr[] = "abcdef";const char* q = arr;printf("%c", "abcdef"[0]);*q = 'q';return 0;
}

        其中p就是一个字符指针。我们对于一个字符串我们想要用指针指向一个字符串时我们最好使用一个const进行修饰,原因是我们使用指针时就会想让字符串的是否能改变它的值,也就是*q='q'这一句,我们知道字符串初始化后只能通过strcpy函数进行修改,所以我们在定义字符指针时用const进行修饰,一旦我们修改它的值就会报错,让我们很容易找到问题的所在地。(字符指针可以看成整形指针,这两种指针的主要区别就是他们的类型)

2.指针数组

整形指针————指向整形数据的指针

字符指针————指向字符数据的指针

指针数组————指向指针的数组

指针数组是数组中存放的地址,例如代码:

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

指针数组的主要作用就是用于创建二维数组。

3.数组指针

指针数组————指向指针的数组

数组指针————指向数组的指针

        我们知道数组名是数组的首地址,但是有一些例外,例如sizeof(arr)这句代码中arr是数组的地址,还有另一种,我们代码如下:

#include<stdio.h>
int main()
{int arr[5] = { 0,1,2,3,4};printf("%p\n", arr);printf("%p\n", arr + 1);printf("%p\n", &arr[0]);printf("%p\n", &arr[0]+1);printf("%p\n", &arr);printf("%p\n", &arr+1);return 0;
}

当我们运行代码可以看到

 

 &arr+1和&arr相差40个字节 ,其余的arr和arr+1,&arr[0]+1和&arr[0]相差4个字节,我们可以得到&arr得到的是数组的地址,arr和&arr[0]是数组的首地址。数组指针具体是如何使用的,我们可以看以下代码:

#include <stdio.h>
int main()
{int arr[5] = { 0,1,2,3,4 };int(*p)[5] = &arr;int i;for (i = 0; i < 5; i++){printf("%d ", (*p)[i]);}return 0;
}

我们用的是数组指针,他需要包括指针和数组,*p是指针【5】是数组,那问题来了*p[5]是否可行呢,答案是不可,我们知道【】的优先级高于*所以p会先和【5】结合就又成了指针数组。

4.数组传参和指针传参

4.一维数组传参

我们先看一维数组传参,代码如下:

#include <stdio.h>
void print(int arr[], int sz)
{int i;for (i = 0; i < sz; i++)printf("%d ", arr[i]);
}
int main()
{int arr[5] = { 0,1,2,3,4 };print(arr,5);
}

在形参中可以写成arr[],也可以写成arr[5];

4.2二维数组传参

代码如下:

#include <stdio.h>
void print(int arr[3][2], int sz1,int sz2)
{int i,j;for (i = 0; i < sz1; i++){for(j=0;j<sz2;j++)printf("%d ", arr[i][j]);}
}
int main()
{int arr[3][2] = { {0,1},{1,2},{2,3} };print(arr,3,2);
}

我们知道在二维数组传参时行可以省略,列不可以省略因此我们还可以吧形参写为arr[][2]。

4.3一级指针传参

#include <stdio.h>
void print(int *p, int sz)
{int i;for (i = 0; i < sz; i++)printf("%d ", *(p+i));
}
int main()
{int arr[5] = { 0,1,2,3,4 };print(arr,5);
}

我们可以看到一维数组传参和指针传参基本相同

4.4二级指针传参

代码如下;

#include <stdio.h>
void print(int** pp)
{printf("%d", **pp);
}
int main()
{int a = 10;int* p = &a;print(&p);return 0;
}

5.函数指针

数组指针————指向数组的指针

函数指针————指向函数的指针

#include <stdio.h>
int Add(int a, int b)
{return a + b;
}
int main()
{int a = 10;int b = 20;printf("a + b = %d\n", Add(a, b));printf("&Add = %p\n", &Add);printf(" Add = %p\n", Add);return 0;
}

        我们知道函数也是有地址的我们&Add可以得到函数的地址,我们想到取地址数组名是数组的地址和取地址函数名是函数的地址,那数组名是数组的首地址,函数名是不是函数的首地址呢?事实上函数没有首地址,它的函数名就是函数的地址和取地址函数名是一个意思,那什么是函数指针呢?我们知道数组指针的形式是(*p)[5]的形式那函数指针就是void(*p)(int ,char)的形式其中int ,char是形参的数据类型,void是函数的返回类型。

我们看两段有趣的代码

(*(void (*)())0)()
其中void (*)()是函数指针,(void (*)())0是强制转换(*()0)()相当于调用0地址的函数。

void (*signal(int , void(*)(int)))(int);
void(*)(int)是函数指针,signal(int , void(*)(int))是一个函数一个参数是int类型,一个是函数指针类型,void(*signal())(int)是指signal函数返回类型是void,参数是int,

今天的内容就结束了,希望大家可以点赞,评论,收藏。 

http://www.hkea.cn/news/453254/

相关文章:

  • 电商网站 开发成本惠州seo外包服务
  • 佛山做网站建设价格百度网盘官方下载
  • 网上购物商城网站建设个人免费域名注册网站
  • 成都学网站建设电子营销主要做什么
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码网络推广员招聘
  • 网站后台怎么添加图片视频app推广
  • 网站秒收录怎么做的经典软文案例和扶贫农产品软文
  • 珠海疫情最新情况厦门搜索引擎优化
  • 中国菲律宾历史战绩网站关键词优化工具
  • 西宁网站建设最好的公司哪家好优秀网站设计案例
  • 沧州做网站费用搜索引擎优化是做什么的
  • 社区网站推广方案线上运营的5个步骤
  • 湘潭学校网站建设 z磐石网络网站关键词优化教程
  • wordpress多程序用户同步汕头seo排名
  • 旅游网站 建设平台分析百度seo一本通
  • 怎么用dw做网站app开发网站
  • 昆山做网站的公司有哪些seo整站优化推广
  • 网站建设谈单情景对话青岛seo百科
  • 网站做自适应好不好网页分析报告案例
  • 大连手机自适应网站建设公司seo诊断站长
  • 有哪些好的网站十大电商代运营公司
  • 个人网页设计欣赏网站整站优化快速排名
  • 多少钱立案seo 公司
  • 医学类的网站做Google百度怎么优化排名
  • 手机网站怎样做枸橼酸西地那非片的功效与作用
  • 邯郸做wap网站的公司六六seo基础运营第三讲
  • 六安市建设银行网站seo编辑的工作内容
  • seo外包平台福州百度快照优化
  • 橙子建站广告怎么投放竞价网络推广
  • 中国公司查询网站网络公司起名