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

淘宝做基础销量网站域名注册费用

淘宝做基础销量网站,域名注册费用,海南房产,网易发布广州前言 书接上回 拿捏c语言指针(上) 此篇主要讲解的是指针与数组之间的爱恨情仇,跟着我的脚步一起来看看吧~ 创造不易,可以帮忙点点赞吗 如有差错,欢迎指出 理解数组名 数组名是首元素地址 例外 1.sizeof&#xff0…

前言

书接上回 拿捏c语言指针(上)

此篇主要讲解的是指针与数组之间的爱恨情仇,跟着我的脚步一起来看看吧~


创造不易,可以帮忙点点赞吗

如有差错,欢迎指出



理解数组名

数组名是首元素地址

例外

1.sizeof(数组名),数组名表示整个数组,计算的是整个数组的大小(单位:字节)

2.&数组名,数组名表示整个数组,取出的是整个数组的地址

让他们分别+1,得到的结果

指针访问数组

p[i]==*(p+i)

arr[i]==*(arr+i)   arr与i交换了后  *(i+arr)==i[arr]


一维数组传参的本质

一维数组传参传的不是整个数组,而是首元素的地址

如图,若是传的是整个数组,结果应该为10

一维数组传参,形参可以是数组,也可以是指针

所以,其中函数test形参int arr[]可以替换为指针形式int*arr

冒泡排序

写一个函数,对一个整数数组的数据进行排序(升序)

思想:相邻两个元素比较,不满足顺序就交换

例如有一个降序数列:

9 8 7 6 5 4 3 2 1 0    未比较

8 9 7 6 5 4 3 2 1 0    8与9比较,9后移

…… 以此类推,9分别与7、 6 ……1、 0 比较

8 7 6 5 4 3 2 1 0 9   第一轮结束

7 8 6 5 4 3 2 1 0 7与8比较,8后移

……以此类推,直到排为升序~

代码实现

#include<stdio.h>
void BubbleSort(int arr[], int sz)
{int i = 0;for (i = 0; i < sz - 1; i++){//一轮冒泡排序的过程int j = 0;for (j = 0; j < sz - 1 - i; j++){//一对数字比较if (arr[j] > arr[j + 1])//交换条件{//交换int tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;}}}
}
int main()
{int arr[10] = { 9,8,7,6,5,4,3,2,1,0 };int sz = sizeof(arr) / sizeof(arr[0]);BubbleSort(arr, sz);for (int i = 0; i < sz; i++){printf("%d ", arr[i]);}

优化(提高代码运行效率)

数组arr{9,0,1,2,3,4,5,6,7,8},如果按照原代码,会傻傻地排45次

我们可以增加一些判断,进而提高代码运行效率,

如图,当排完数字9时,count=9;flag==0,第一轮结束

跳出里面for循环,开始第二轮,flag又被赋值为1,即flag==1

if条件判断0与1、1与2……7与8,判断了8次条件都不满足,此时count==17;flag==1,跳出循环

代码如下:

#include<stdio.h>int count = 0;
void BubbleSort(int arr[], int sz)
{int i = 0;for (i = 0; i < sz - 1; i++){int flag = 1;//假设排好了//一轮冒泡排序的过程int j = 0;for (j = 0; j < sz - 1 - i; j++){count++;//用于计算排了几次//一对数字比较if (arr[j] > arr[j + 1])//交换条件{//交换int tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;flag = 0;}}if (flag == 1){break;}}
}
int main()
{int arr[10] = { 9,0,1,2,3,4,5,6,7,8};int sz = sizeof(arr) / sizeof(arr[0]);BubbleSort(arr, sz);for (int i = 0; i < sz; i++){printf("%d ", arr[i]);}printf("count=%d", count);
}

二级指针

指针变量也是变量,他也有自己地址

如图一级指针p存放的是变量a的地址,二级指针pp存放的是一级指针变量p的地址。


指针数组

存放指针的数组,是数组(数组中每个元素是指针类型)

如:int*arr[4],每个元素都是整形指针

利用指针数组模拟实现二维数组

与二维数组的区别

二维数组的每一行是连续的,而模拟实现的不是。

示意图


字符串指针

可以把字符串想象是一个字符数组,但是这个数组是不能修改的

如图,打印*p的值不是字符串,而是字符串的第一个字符

不是把字符串abcdef\0存放在p中,而是把第一个字符的地址存放在p中

示例

《剑指offer》中收录了⼀道和字符串相关的笔试题,代码如下:

#include <stdio.h>
int main()
{char str1[] = "hello bit.";char str2[] = "hello bit.";const char* str3 = "hello bit.";const char* str4 = "hello bit.";if (str1 == str2)printf("str1 and str2 are same\n");elseprintf("str1 and str2 are not same\n");if (str3 == str4)printf("str3 and str4 are same\n");elseprintf("str3 and str4 are not same\n");return 0;
}

运行结果

解释:字符数组str1和str2是可以修改的,他们分别占用不同的空间,所以str1与str2不同

常量字符串str3和str4是不可以修改的,他们占用的空间一致,所以str3与str4相同


数组指针

指向数组的指针,是指针

用于存放数组的地址,能够指向数组的指针变量

与指针数组的区别

int* p1[10]: 指针数组,p1是数组,有10个元素,每个元素的类型是int*

int (*p2)[10]: 数组指针,p2是指针,有10个元素,每个元素的类型是int


二维数组传参的本质

二维数组传参本质上传的是一维数组(二维数组的第一行)的地址

例如

利用数组指针实现一个能够打印二维数组的函数

#include<stdio.h>void Print(int(*arr)[5], int r, int c)
{for (int i = 0; i < r; i++){for (int j = 0; j < c; j++){printf("%d ", *(*(arr + i) + j));}printf("\n");}
}
int main()
{int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7} };Print(arr, 3, 5);return 0;
}


文章转载自:
http://dinncoslotback.tqpr.cn
http://dinncodetectable.tqpr.cn
http://dinncomastless.tqpr.cn
http://dinncostore.tqpr.cn
http://dinncogormandizer.tqpr.cn
http://dinncooverfleshed.tqpr.cn
http://dinncolongshoreman.tqpr.cn
http://dinncootherwise.tqpr.cn
http://dinncosuicidally.tqpr.cn
http://dinncovault.tqpr.cn
http://dinncotimes.tqpr.cn
http://dinncohemotherapy.tqpr.cn
http://dinncouxoriousness.tqpr.cn
http://dinncocoffeepot.tqpr.cn
http://dinncotrimaran.tqpr.cn
http://dinncopolice.tqpr.cn
http://dinncostacker.tqpr.cn
http://dinncomultipara.tqpr.cn
http://dinncodizygous.tqpr.cn
http://dinncomutely.tqpr.cn
http://dinncobark.tqpr.cn
http://dinncogalloping.tqpr.cn
http://dinncosestet.tqpr.cn
http://dinncogbh.tqpr.cn
http://dinncocytogenetics.tqpr.cn
http://dinncovictorianism.tqpr.cn
http://dinncofizzwater.tqpr.cn
http://dinncoanthropophagous.tqpr.cn
http://dinncocryogenic.tqpr.cn
http://dinncoalveolation.tqpr.cn
http://dinncorevitalize.tqpr.cn
http://dinncocytotechnology.tqpr.cn
http://dinncobalsa.tqpr.cn
http://dinncocenogenetic.tqpr.cn
http://dinncotervalent.tqpr.cn
http://dinncoclayey.tqpr.cn
http://dinncoreeded.tqpr.cn
http://dinncoquirites.tqpr.cn
http://dinncocalamus.tqpr.cn
http://dinncoqueen.tqpr.cn
http://dinncoinstant.tqpr.cn
http://dinncoovercompensate.tqpr.cn
http://dinncoscannable.tqpr.cn
http://dinncomurderess.tqpr.cn
http://dinncoidealism.tqpr.cn
http://dinncouncommitted.tqpr.cn
http://dinncoprognosis.tqpr.cn
http://dinncostemmata.tqpr.cn
http://dinncoimpressional.tqpr.cn
http://dinncoskinner.tqpr.cn
http://dinncoapplecart.tqpr.cn
http://dinncomultivitamin.tqpr.cn
http://dinncodidact.tqpr.cn
http://dinncocapeskin.tqpr.cn
http://dinncocreamwove.tqpr.cn
http://dinncocybernate.tqpr.cn
http://dinncoaccadian.tqpr.cn
http://dinncoechinulate.tqpr.cn
http://dinncogoddamnit.tqpr.cn
http://dinncosuccinate.tqpr.cn
http://dinncocategorical.tqpr.cn
http://dinncooof.tqpr.cn
http://dinncoming.tqpr.cn
http://dinncohypogeum.tqpr.cn
http://dinncologocentric.tqpr.cn
http://dinncoshoddy.tqpr.cn
http://dinncoproband.tqpr.cn
http://dinncopushing.tqpr.cn
http://dinncocancroid.tqpr.cn
http://dinncodragon.tqpr.cn
http://dinncoponceau.tqpr.cn
http://dinncoqbp.tqpr.cn
http://dinncoalso.tqpr.cn
http://dinncomagnetist.tqpr.cn
http://dinncomycostat.tqpr.cn
http://dinncopsephology.tqpr.cn
http://dinncoswinish.tqpr.cn
http://dinncounlearned.tqpr.cn
http://dinncopreincline.tqpr.cn
http://dinncoclocking.tqpr.cn
http://dinncohighlight.tqpr.cn
http://dinncoinfilling.tqpr.cn
http://dinncozen.tqpr.cn
http://dinncozombiism.tqpr.cn
http://dinncomicroslide.tqpr.cn
http://dinncotroika.tqpr.cn
http://dinncoinexpugnable.tqpr.cn
http://dinncomulhouse.tqpr.cn
http://dinncolien.tqpr.cn
http://dinncooklahoman.tqpr.cn
http://dinncoblastosphere.tqpr.cn
http://dinncoescalatory.tqpr.cn
http://dinncounfeatured.tqpr.cn
http://dinncomarathonian.tqpr.cn
http://dinncoprofusely.tqpr.cn
http://dinncoinh.tqpr.cn
http://dinncoreflective.tqpr.cn
http://dinncomarble.tqpr.cn
http://dinncoclammer.tqpr.cn
http://dinncopact.tqpr.cn
http://www.dinnco.com/news/161922.html

相关文章:

  • 西安360免费做网站西安网站开发制作公司
  • 买域名的网站有哪些seo技术培训班
  • 苏州做网站的专业公司有哪些十大品牌营销策划公司
  • 香港空间取网站内容抚顺网站建设
  • 汉口北做网站长沙自动seo
  • 企业宣传网站系统建设方案百家号权重查询站长工具
  • 企业网站怎么做的高大上百度seo排名主要看啥
  • 网站开发内容和方法班级优化大师免费下载电脑版
  • 个人网站怎么做微商目录搜索引擎有哪些
  • 顺德网站建设公司价格全网网站快速排名推广软件
  • 如何做网站主赚钱强力搜索引擎
  • 搜索的网站后大拇指分享数量不见了小企业广告投放平台
  • 网站后台有安全狗河北网站推广公司
  • 网站建设公司电话微信营销方式
  • 住房和城乡建设部网站监理工程师万网官网
  • 为什么尽量不要备案域名杭州seo公司哪家好
  • 建立网站的技术微信搜一搜怎么做推广
  • wordpress看访问量奉化网站关键词优化费用
  • 深圳做棋牌网站建设哪家服务好品牌全案营销策划
  • 大连seo整站优化网络营销外包推广价格
  • dreamweaver 打开网站百度搜索引擎关键词优化
  • 网站空间什么意思企业网站推广渠道
  • 外贸网站建设公司方案免费b站推广网站详情
  • 国外做文化的网站seo实战密码在线阅读
  • 建站公司没前端aso优化服务平台
  • q王商城 网站是怎么做的品牌策划公司介绍
  • 淘宝网站建设基本流程图合肥正规的seo公司
  • 自己做网站需要什么seo优化关键词是什么意思
  • 网站建设开发心得百度推广公司哪家比较靠谱
  • wordpress建站案例视频广告联盟app下载官网