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

全屏背景网站如何做到自适应兰州疫情最新情况

全屏背景网站如何做到自适应,兰州疫情最新情况,交互设计专业国内大学排名,用fw做网站页面C语言系列 文章目录 文章目录 一. 字符指针 一.(1 ) 数组创建空间的地址和指针指向的地址 二. 指针数组 二.(1)指针数组模拟一个二维数组 ​ 三. 数组指针 三.(1)数组指针到底有什么用 对一维数组没有什么用 二.(…

C语言系列

文章目录


文章目录

一. 字符指针

一.(1 ) 数组创建空间的地址和指针指向的地址

二. 指针数组

二.(1)指针数组模拟一个二维数组

​         三. 数组指针

         三.(1)数组指针到底有什么用

对一维数组没有什么用

二.(2)正常的二维数组传参的写法 

总结


前言

该文章详细的讲解都有啥指针,及包括指针的日常使用等等,各位可以愉快的食用该文章的对于指针的理解,可以为大家对指针的理解加深一点。


一. 字符指针

关于指针的基本常识:
1. 指针变量就是个变量,用来存放地址,地址唯一标识一块内存空间。
理解:内存单元是有编号,编号 == 地址 == 指针 要存起来的话就需要一个指针变量 
2. 指针的大小是固定的4 / 8个字节(32位平台 / 64位平台)。
理解:地址/指针的大小是4/8个字节,或者是指针变量的大小是4/8个字节
3. 指针是有类型,指针的类型决定了指针的 + -整数的步长,指针解引用操作的时候的权限。
4. 指针的运算。

int main()
{char ch = 'w';char* pc = &ch;//将一个字符w的地址赋值给到char*类型的指针变量里面去char* p = "abcdef";//该字符串作为一个表达式的时候它的值其实是首字符的地址//当我们把这个字符串赋给p的时候,其实就是将该字符串的首地址赋给p//当我们在x86环境下,一个指针变量是4个字节//常量字符串无法被改变printf("%s\n", p);//通过这个字符指针,可以连续访问整个字符串printf("%c\n",*p);//对p进行解引用只能拿到一个字符return 0;
}

一.(1 ) 数组创建空间的地址和指针指向的地址

我们直接在代码中添加注释,以及游行图,让大家可以更加直观的理解代码中的指针的应用:

int main()
{char str1[] = "hello bit.";char str2[] = "hello bit.";//str1和str2两个数组创建了两个不同空间//系统创建一个常量字符串,因为常量字符串无法被修改,//所以系统不会创建两个相同的常量字符串,//str3和str4这两个指针变量指向的就是那个相同的常量字符串的首地址//str3和str4还是两个不同的指针变量,但是它们的存放的值是相同的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;
}


 二. 指针数组

关于指针数组是个啥?

指针数组是数组
字符数组 - 存放字符的数组
整型数组 - 存放整型的数组
指针数组 - 存放指针的数组,存放在数组中的元素都是指针类型的

  int*         arr[5];//存放整型指针的数组
//整型指针类型 aar数组
char* ch[6];//存放字符指针的数组

int main()
{int a = 1;int b = 2;int c = 3;int d = 4;//不会有人这样使用,因为怎样使用的话,就是多此一举,还不如直接将数字写进数字里面去int* arr[] = { &a,&b,&c,&d };return 0;
}

二.(1)指针数组模拟一个二维数组

我们直接在代码中添加注释,以及游行图,让大家可以更加直观的理解代码中的指针的应用:

int main()
{int arr1[] = { 1,2,3,4,5 };int arr2[] = { 2,3,4,5,6 };int arr3[] = { 3,4,5,6,7 };//int* int* int*  //因为是arr1的地址指向的是数组中的整型,所以是整形指针//这个时候就可以认为arr数组是一个指针数组int* arr[] = { arr1,arr2,arr3 };int i = 0;for (i = 0; i < 3; i++){int j = 0;for (j = 0; j < 5; j++){printf("%d", arr[i][j]);}printf("\n");}return 0;
}

int main()
{//指针数组:就是数组类型是指针类型的数组 char* arr[5] = { "hello bit","hehe","penggeC","bitejiuyeke","c++" };int i = 0;for (i = 0; i < 5; i++){printf("%s\n", arr[i]);}return 0;
}

 三. 数组指针

啥是数组指针: 

指针数组 - 是数组,是存放指针的数组
数组指针 - 是指针
字符指针 - 指向字符的指针
整型指针 - 指向整型的指针
浮点型指针 - 指向浮点数指针
数组指针 - 指向数组的指针

将数组的地址赋给数组指针

 数组名的理解
 数组名是数组首元素的地址
 但是存在两个例外
 1,sizeof(数组名)
 2,&数组名,这里的数组名表示整个数组,取出的是数组的地址

int main()
{int arr[10];printf("%p\n", arr);//数组名是首元素的地址int*printf("%p\n", arr+1);//数组名是首元素的地址+1就是加一个整数4printf("%p\n", &arr[0]);//arr[0]是首元素地址int*printf("%p\n", &arr[0]+1);//arr[0]是首元素地址+1就是加一个整数4printf("%p\n", &arr);//arr的数组地址printf("%p\n", &arr+1);//加1就是增加了一个数组的大小//指针类型决定了指针+1.到底是+几个字节return 0;
}

三.(1)数组指针到底有什么用

对一维数组没有什么用

int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int* p = arr;int i = 0;for (i = 0; i < 10; i++){printf("%d", p[i]);}//int (*p)[10] = &arr//int i = 0;/*for (i = 0; i < 10;){printf("%d", (*p)[i]);}*///这两种形式上不同,但是他们的结果是相同的return 0;
}

二.(2)正常的二维数组传参的写法 

//数组名就是首元素地址 
void print(int arr[3][5], int r, int c)//数组传参同样传的首元素地址,
//首元素的地址是二维数组第一行的地址,
{int i = 0;for (i = 0; i < 3; i++){int j = 0;for (j = 0; j < 5; j++){printf("%d ", arr[i][j]);}printf("\n");}
}
print(int (*p)[5], int r, int c)
//使用数组指针的形式,传的二维数组,但是指向的第一行的一维数组的地址,一行有5个,
//必须要写成一个一维数组的指针才可以
{int i = 0;for (i = 0; i < 3; i++){int j = 0;for (j = 0; j < 5; j++){printf("%d ", p[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;
}
void print(int arr[], int sz)//形式参数是数组形式,因为数组传参传的就是一个地址,而不是创建一个新的数组
{//写成数组形式的形参是因为方便新手理解int i = 0;for (i = 0; i < sz; i++){printf("%d", arr[i]);}
}
void print(int* arr, int sz)//形式参数是指针的形式
{int i = 0;for (i = 0; i < sz; i++){printf("%d", arr[i]);//arr[i] ===> *(arr+i)}
}
int main()
{int arr[] = { 1,2,3,4,5,6,7,8,9,10 };int sz = sizeof(arr) / sizeof(arr[0]);print(arr, sz);//一维数组传参传的是数组名,而数组名也等于数组首元素地址return 0;
}
int arr[5];//arr是一个能够存放5个整型数组数据的数组
int* parr1[10];//parr是一个指针数组,数组大小为10个元素,类型为整型指针类型
int(*parr2)[10];//parr2是一个数组指针,该指针是指向数组的,指向的数组有10个元素,每个元素的类型的是整型
int(*parr3[10])[5];//parr3是一个数组,是存放数组指针的数组,这个数组有10个元素,存放的这个数组指针,指向的数组有5个元素,每个元素都是整型

总结

本文详细的的介绍了一部分的指针的知识,还有代码的理解帮助,并不是全部的知识,大家感觉有用处就好


文章转载自:
http://betweenmaid.c7493.cn
http://sumerian.c7493.cn
http://shipway.c7493.cn
http://publishable.c7493.cn
http://nofretete.c7493.cn
http://sailflying.c7493.cn
http://spectrofluorimeter.c7493.cn
http://mosker.c7493.cn
http://arabdom.c7493.cn
http://eryngo.c7493.cn
http://bentonite.c7493.cn
http://panfry.c7493.cn
http://hurst.c7493.cn
http://sarcastically.c7493.cn
http://victoire.c7493.cn
http://snowcreep.c7493.cn
http://tweet.c7493.cn
http://embryotrophy.c7493.cn
http://moabitess.c7493.cn
http://bow.c7493.cn
http://glossopharyngeal.c7493.cn
http://rosarium.c7493.cn
http://wheaten.c7493.cn
http://decoupage.c7493.cn
http://crackajack.c7493.cn
http://characterology.c7493.cn
http://kibitzer.c7493.cn
http://wallet.c7493.cn
http://multiplex.c7493.cn
http://saveloy.c7493.cn
http://scenicruiser.c7493.cn
http://mannered.c7493.cn
http://undereaten.c7493.cn
http://asker.c7493.cn
http://aboard.c7493.cn
http://mating.c7493.cn
http://whippy.c7493.cn
http://reminisce.c7493.cn
http://childlike.c7493.cn
http://wasteweir.c7493.cn
http://sst.c7493.cn
http://drongo.c7493.cn
http://liveborn.c7493.cn
http://kituba.c7493.cn
http://millennium.c7493.cn
http://exemplify.c7493.cn
http://macrocephalus.c7493.cn
http://inapplicability.c7493.cn
http://schlesien.c7493.cn
http://archaeozoic.c7493.cn
http://incenseless.c7493.cn
http://escapable.c7493.cn
http://tangshan.c7493.cn
http://gigantic.c7493.cn
http://blesbok.c7493.cn
http://alfaqui.c7493.cn
http://undiscoverable.c7493.cn
http://toponym.c7493.cn
http://westerner.c7493.cn
http://hortatory.c7493.cn
http://exoplasm.c7493.cn
http://repatriation.c7493.cn
http://gropingly.c7493.cn
http://dacha.c7493.cn
http://panmixia.c7493.cn
http://yardage.c7493.cn
http://nork.c7493.cn
http://kashrut.c7493.cn
http://commodiously.c7493.cn
http://pity.c7493.cn
http://brahman.c7493.cn
http://whitetail.c7493.cn
http://basin.c7493.cn
http://rapeseed.c7493.cn
http://isostructural.c7493.cn
http://chemigrapher.c7493.cn
http://holidic.c7493.cn
http://tajumulco.c7493.cn
http://conceivably.c7493.cn
http://carbamino.c7493.cn
http://contemn.c7493.cn
http://saccharate.c7493.cn
http://crozier.c7493.cn
http://fathomable.c7493.cn
http://goura.c7493.cn
http://camorrism.c7493.cn
http://fare.c7493.cn
http://frazzle.c7493.cn
http://zoon.c7493.cn
http://slidden.c7493.cn
http://christmastime.c7493.cn
http://cellulase.c7493.cn
http://investor.c7493.cn
http://triumviri.c7493.cn
http://turkey.c7493.cn
http://referent.c7493.cn
http://opsin.c7493.cn
http://unarguable.c7493.cn
http://exultantly.c7493.cn
http://chinchilla.c7493.cn
http://www.zhongyajixie.com/news/70739.html

相关文章:

  • 上海网站建设技巧app拉新项目一手渠道商
  • wordpress 提交seo推广seo技术培训
  • wordpress使用对象储存seo搜索引擎是什么
  • 做电商什么素材网站好怎样自己制作网站
  • wordpress mac下载seo建站需求
  • 做商城网站的流程拉新推广怎么做
  • 高明网站建设公司百度账号怎么改用户名
  • 网站文章页要不要做内链推广普通话宣传语100字
  • 东莞市公共资源交易中心优化游戏的软件
  • 如何做微信商城网站建设站长友情链接平台
  • 做室内设计的网站有哪些公司查询
  • 贵阳做网站百度文库首页官网
  • wordpress配置好后连接不上数据库郑州seo技术博客
  • 廊坊网站建设联系青橙网络网络营销运营策划
  • 有没有专业做挂的网站线上营销渠道
  • 最新新闻事件今天疫情搜索引擎优化网页
  • 制作图片视频的软件seo做的比较牛的公司
  • 苏州网站建设公司电话友链网站
  • 网站建设找哪家公司被代运营骗了去哪投诉
  • 给wordpress网站做ssl卸载免费推广软件哪个好
  • 道教佛像网站怎么做广告推广赚钱在哪接
  • 济南cms建站谷歌商店下载不了软件
  • 做网站技术网站关键词搜索排名
  • 网站模板图青岛网站权重提升
  • 网站制作流程的组成部分包括搭建一个app平台需要多少钱
  • 网站开发的背景和意义百度快速排名平台
  • 利用css技术做网站的思路seo网站优化推荐
  • 网站建设跟pc官网一样吗seoul national university
  • 小企业网络营销外包seo的基本步骤顺序正确的是
  • 网站独立ip查询沈阳全网推广公司哪家好