数组指针和指针数组的区别
在讲到指针数组与数组指针之前我们先来简单将一维数组的使用讲一讲,这样有利于我们更好的理解指针数组与数组指针。一维数组#define _CRT_SECURE_NO_WARNINGS #include #include #include #include int main() { int a[8] = { 1,2,3,4,5,6,7,8 };//4个元素 //sizeof()测变量所占空间的大小 (变量所对应类型空间) //int b[];//err 定义时必须初始化 int a1[100] = { 1,2,3,4 };//只初始化前4个 其余为0 int n = 0; //sizeof(a) = 4 * 8 = 32; 数组类型由 元素个数 和 元素类型 决定 n = sizeof(a) / sizeof(a[0]); for (int i = 0; i < n; i++) { //*(a+i) : a+i 代表 a中的的第i个元素 *(a+i)取值第a+i个元素 printf("%d ",a[i]); } printf(" "); //数组类型 //a 代表首元素地址 //&a 代表整个数组首的地址 它与首元素地址相同,但步长不同 printf("a:%d,a+1:%d ", a, a + 1);//差4字节 printf("&a:%d,&a+1:%d ", &a, &a + 1);//差32个字节 //数组类型:由元素个数 和元素类型对应 int [8] //通过typedef定义一个数组类型 //有typedef是类型,没有是变量 typedef int A[8];//表示是一个数组类型 A b;//int b[8] 等价 for (int i = 0; i < 8; i++) { b[i] = 2*i + 1; } for (int i = 0; i < n; i++) { printf("%d ", *(b + i)); //printf("%d ", b[i]); } printf(" "); printf("b:%d,b+1:%d ",b, b + 1);//差4 printf("&b:%d,&b+1:%d ",&b, &b + 1);//差32 return 0; }
打印结果:1 2 3 4 5 6 7 8 a:17823680,a+1:17823684 &a:17823680,&a+1:17823712 1 3 5 7 9 11 13 15 b:17823208,b+1:17823212 &b:17823208,&b+1:17823240指针数组
指针数组的本质是一个数组,但这个数组的每个元素都是指针。#define _CRT_SECURE_NO_WARNINGS #include #include #include #include //agec代表:传参的个数(包括可执行程序) //argv代表:指针数组,指向输入的参数 int main0401(int argc,char*argv[]) { char* a[] = { "aaa","bbb","ccc" }; //这是一个指针数组,数组a中的每个元素都是指针类型 printf("argc=%d", argc); for (int i = 0; i < argc; i++) { printf("%s ", argv[i]); } return 0; }数组指针
数组指针,它是一个指针,但它指向整个数组的首元素int main() { //数组指针,指向一维数组的整个数组,而不是首元素地址 //定义数组指针变量 int a[10] = { 0 }; //1.先定义数组类型,再定义指针 typedef int A[10];//A是数组类型 [10]代表步长 A* p = NULL;//p是数组指针类型变量 //p = a;//a代表首元素地址 a与&a值相同 最终系统会当做&a处理 p = &a;//&a代表整个数组的首地址 printf("p:%d,p+1:%d ", p,p + 1);//相差40 for (int i = 0; i < 10; i++) { //a[] //p=&a; //*p = *&a->a; (*p)[i] = i + 1; } return 0; }
打印结果:p:12319052,p+1:12319092
加快建设网络强国当今社会是一个网络科技快速发展的时代。网络科技给国家和人民带来很多便利,在严峻的新冠肺炎疫情形势下,人们坐在家中知天下,在线办公云端上课线上消费等线上经济迅速发展起来,成为了一只有
快递不送货上门或被罚三万终结不告而投难在哪儿?你是否也经历过在苦守快递的过程中只等来凭取件码至xx快递柜取xx快递包裹的短信?你是否也曾遗忘快递柜中的快件,却在午夜时分收到一条快递超时即将收费的提醒信息?不过,这些或将成为历史
华为P50Pro体验,使用5个月后,我愿称它为最好用的华为手机尽管华为在2021年并没有发布5G旗舰手机,不过8月份发布的华为P50Pro依旧很强势,于是花费6488元入手了8G256G版本,如今使用已有5个月的时间,我愿意称它为最好用的华为
下一代高通处理器8gen2正式确立日前与科技媒体Verge交流时,高通CEO安蒙(CristianoAmon)明确,骁龙8Gen1之后的下一代旗舰处理器是骁龙8Gen2。他解释之所以对骁龙8系芯片取消三位数字命名,
旧手机可以换碗换盆?被回收后都怎么处理了?希望你没有中招CINNOResearch机构发布的数据显示,2021年全年,我国智能手机销量达到了3。2亿部,可谓是非常之多了,其实能够有这么多的销量,主要是因为人们在频繁地更换手机。使用过功能
抢跑布局元宇宙被写入多地政府工作报告作为当前互联网领域的一大热词,元宇宙出现在越来越多地方政府工作报告中。据中国证券报记者不完全统计,目前武汉合肥上海市徐汇区均将元宇宙写入今年政府工作报告,此前浙江无锡等省市也在相关
想入手个好点屏幕的手机,5K左右的预算,有吗?想入手个好点屏幕的手机,5k左右的预算,有吗?5000元预算这个价位,基本上都是手机生产厂家的旗舰机。得入手的手机,本人推荐以下三款,提问者可以参考一下。首先推荐荣耀Magic3,
想换手机了,小米12还是小米11p?萝卜白菜各有所爱。下面就这两款手机做下对比一做工和手感。小米12,一个最大的卖点就是小屏旗舰,轻薄的机身设计,还采用了一块6。28英寸的屏幕,整机的重量还控制在180g。机身大小和
6G新成果出炉!2030年或将迎来6G当人们还在探索5G应用场景时,6G的科研成果已经出炉了。近日,紫金山实验室发布6G创新成果,其通信速率较5G提升10倍至20倍。多数消费者尚在经历4G到5G的更新迭代,6G为何又早
人民手机是覆盖全球的基础设施人民手机是覆盖全球的基础设施Peoplesmobilephoneistheinfrastructurethatcoverstheworld人民的智能手机是覆盖全球的超级基础设施。P
腾讯员工离职后去竞争公司,违反竞业限制需赔偿100多万继普通家庭马化腾普通公司腾讯后,近日,腾讯因某员工绩效拿二星后接近崩溃而再次喜提热搜。绩效考核成为很多员工挥之不去的阴影,绩效低不仅意味着不能拿到较高的绩效工资,也意味着升职目前与