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

空间网站建设桂平seo快速优化软件

空间网站建设,桂平seo快速优化软件,建设工程网站新专家入库,公众平台注册目录 数组与指针 数组指针 指针数组 函数指针 函数指针数组 const和指针 sizeof和指针和数组 strlen和字符数组 数组与指针 数组指针 数组指针本质还是指针 int*p1[10] int(*p1)[10] 第一个是指针数组,第二个是数组指针, 解释:p先…

目录

数组与指针

数组指针

指针数组

函数指针

函数指针数组

const和指针

sizeof和指针和数组

strlen和字符数组


数组与指针

数组指针

数组指针本质还是指针

int*p1[10]

int(*p1)[10]

第一个是指针数组,第二个是数组指针,

 解释:p先和*结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。
//这里要注意:[]的优先级要高于*号的,所以必须加上()来保证p先和*结合

若是二维数组int arr[3][5];

int(*p1)[10]中*p指向数组中第一个元素的地址,及&arr[0],他内部又有5个连续空间构成一维数组。

*(*p+i)*(*(p+i))区别

*(*p+i)访问第一个一维数组的第i下标元素

*(*(p+i))访问第i个一维数组的首元素

指针数组

本质:数组元素均为指针的数组。
定义: 数据类型 *数组名[长度] ,如 int *p[3]; (3个int指针)。
作用:存储多个地址(如变量、数组、字符串地址),便于批量操作。
例: char *strs[] = {"a", "b"}; (指针数组存储字符串常量地址)。
与数组指针区别:先算 [] (数组),元素是指针。

函数指针

- 本质:指向函数的指针变量,存储函数的入口地址。
- 定义格式: 数据类型 (*指针名)(参数类型列表) 
例: int (*ptr)(int, int); (指向返回值为 int 、参数为 int,int 的函数)。
- 赋值:指针名 = 函数名(无需取地址符 & )

int add(int a, int b) { return a+b; }  
ptr = add;  // 或 ptr = &add;(可选) 

 
 
- 调用: (*指针名)(参数)  或  指针名(参数) 

int result = (*ptr)(3, 5);  // 或 ptr(3,5);  

- 用途
- 回调函数:作为参数传入其他函数,实现灵活逻辑(如排序函数的比较规则)。
- 函数跳转表:通过数组存储多个函数指针,根据条件调用不同函数。
 

int (*funcs[])(int) = {func1, func2, func3};  
int res = funcs[1](10);  // 调用func2  


 
- 与指针函数区别
- 函数指针: (*ptr)() ,先算 *ptr (指针解引用),再算 () (函数调用),即指向函数的指针。
- 指针函数: ptr() ,先算 () (函数调用),再算 * (返回指针),即返回值为指针的函数。

函数指针数组


- 本质:数组元素为函数指针,存多个函数入口地址。
- 定义: 数据类型 (*数组名[长度])(参数列表) ,如 int (*fp[2])(int,int); 
- 初始化:直接赋值函数名(如 fp[0]=add; )。
- 调用: 数组名[i](参数)  或  (*数组名[i])(参数) 。
- 用途:函数调度表、替代条件判断,提升代码灵活性。

const和指针

sizeof和指针和数组

//一维数组int a[] = {1,2,3,4};
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(a+0));
printf("%d\n",sizeof(*a));
printf("%d\n",sizeof(a+1));
printf("%d\n",sizeof(a[1]));
printf("%d\n",sizeof(&a));
printf("%d\n",sizeof(*&a));
printf("%d\n",sizeof(&a+1));
printf("%d\n",sizeof(&a[0]));
printf("%d\n",sizeof(&a[0]+1));//字符数组char arr[] = {'a','b','c','d','e','f'};
printf("%d\n", sizeof(arr));
printf("%d\n", sizeof(arr+0));
printf("%d\n", sizeof(*arr));
printf("%d\n", sizeof(arr[1]));
printf("%d\n", sizeof(&arr));
printf("%d\n", sizeof(&arr+1));
printf("%d\n", sizeof(&arr[0]+1));char arr[] = "abcdef";
printf("%d\n", sizeof(arr));
printf("%d\n", sizeof(arr+0));
printf("%d\n", sizeof(*arr));
printf("%d\n", sizeof(arr[1]));
printf("%d\n", sizeof(&arr));
printf("%d\n", sizeof(&arr+1));
printf("%d\n", sizeof(&arr[0]+1));char *p = "abcdef";
printf("%d\n", sizeof(p));
printf("%d\n", sizeof(p+1));
printf("%d\n", sizeof(*p));
printf("%d\n", sizeof(p[0]));
printf("%d\n", sizeof(&p));
printf("%d\n", sizeof(&p+1));
printf("%d\n", sizeof(&p[0]+1));//二维数组int a[3][4] = {0};
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(a[0][0]));
printf("%d\n",sizeof(a[0]));
printf("%d\n",sizeof(a[0]+1));
printf("%d\n",sizeof(*(a[0]+1)));
printf("%d\n",sizeof(a+1));
printf("%d\n",sizeof(*(a+1)));
printf("%d\n",sizeof(&a[0]+1));
printf("%d\n",sizeof(*(&a[0]+1)));
printf("%d\n",sizeof(*a));
printf("%d\n",sizeof(a[3]));

strlen和字符数组

//字符数组char arr[] = {'a','b','c','d','e','f'};
printf("%d\n", strlen(arr));
printf("%d\n", strlen(arr+0));
printf("%d\n", strlen(*arr));
printf("%d\n", strlen(arr[1]));
printf("%d\n", strlen(&arr));
printf("%d\n", strlen(&arr+1));
printf("%d\n", strlen(&arr[0]+1));char arr[] = "abcdef";
printf("%d\n", strlen(arr));
printf("%d\n", strlen(arr+0));
printf("%d\n", strlen(*arr));
printf("%d\n", strlen(arr[1]));
printf("%d\n", strlen(&arr));
printf("%d\n", strlen(&arr+1));
printf("%d\n", strlen(&arr[0]+1));char *p = "abcdef";
printf("%d\n", strlen(p));
printf("%d\n", strlen(p+1));
printf("%d\n", strlen(*p));
printf("%d\n", strlen(p[0]));
printf("%d\n", strlen(&p));
printf("%d\n", strlen(&p+1));
printf("%d\n", strlen(&p[0]+1));

笔试题

笔试题1
int main()
{int a[5] = { 1, 2, 3, 4, 5 };int *ptr = (int *)(&a + 1);printf( "%d,%d", *(a + 1), *(ptr - 1));return 0;
}
//程序的结果是什么?笔试题2
//由于还没学习结构体,这里告知结构体的大小是20个字节
struct Test
{int Num;char *pcName;short sDate;char cha[2];short sBa[4];
}*p;
//假设p 的值为0x100000。 如下表表达式的值分别为多少?
int main()
{printf("%p\n", p + 0x1);printf("%p\n", (unsigned long)p + 0x1);printf("%p\n", (unsigned int*)p + 0x1);return 0;
}笔试题3
intmain()
{inta[4] = { 1, 2, 3, 4 };int*ptr1= (int*)(&a+1);int*ptr2= (int*)((int)a+1);printf( "%x,%x", ptr1[-1], *ptr2);    return0;
}笔试题4
#include <stdio.h>
intmain()
{inta[3][2] = { (0, 1), (2, 3), (4, 5) };    int*p;p=a[0];printf( "%d", p[0]);return0;
}笔试题5
int main()
{inta[5][5];int(*p)[4];p=a;printf( "%p,%d\n", &p[4][2] -&a[4][2], &p[4][2] -&a[4][2]);    return0;
}笔试题6
int main()
{intaa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };    int*ptr1= (int*)(&aa+1);int*ptr2= (int*)(*(aa+1));printf( "%d,%d", *(ptr1-1), *(ptr2-1));return0;
}笔试题7
int main()
{char*c[] = {"ENTER","NEW","POINT","FIRST"};char**cp[] = {c+3,c+2,c+1,c};char***cpp=cp;printf("%s\n", **++cpp);printf("%s\n", *--*++cpp+3);printf("%s\n", *cpp[-2]+3);printf("%s\n", cpp[-1][-1]+1);return0;
}笔试题8
int main()
{char*c[] = {"ENTER","NEW","POINT","FIRST"};char**cp[] = {c+3,c+2,c+1,c};char***cpp=cp;printf("%s\n", **++cpp);printf("%s\n", *--*++cpp+3);printf("%s\n", *cpp[-2]+3);printf("%s\n", cpp[-1][-1]+1);return0;
}

http://www.dtcms.com/wzjs/241246.html

相关文章:

  • 动态网站制作app推广接单发布平台
  • 滁州网站建设南宁在哪里推广网站
  • 北京网站建设 优化营销推广活动策划方案大全
  • html5 电商网站模板火星时代教育培训机构怎么样
  • 西安工程信息交易中心seo学院培训班
  • 小伙做网站济南网站运营公司
  • 网站的开发环境设计seo数据是什么意思
  • 用记事本做网站缺少body南城网站优化公司
  • 深圳网站制作公司报价成都seo达人
  • 网站建设营销平台政府免费培训面点班
  • 自己做的网站能加人收藏吗torrentkitty磁力官网
  • 厦门市建设与管理局 官方网站百度信息流账户搭建
  • 高端网站设计品牌搜索引擎营销案例
  • 网络客服有哪些岗位要求seo网络推广报价
  • 免费b2b网站大全免费网站免登录网页近日网站收录查询
  • 如何用txt做网站时增加照片seo策略是什么意思
  • 地推项目平台白杨seo教程
  • wordpress ie6 内核北京网站优化方法
  • 怎么在微信公众号上做网站网上销售推广方案
  • 吉林网站建设哪家有友情链接对网站的作用
  • 做网站那个php好用河南品牌网站建设
  • 线上电商怎么做产品seo怎么优化
  • 淮北建设银行官方网站谷歌排名优化入门教程
  • 互联网运营是什么工作seo官网
  • 西昌市做网站的文案代写在哪里接单子
  • 上海公共招聘网站现在百度推广有用吗
  • 手机网站制作工具关键词排名优化公司哪家强
  • 哪个网站可以免费做招牌bittorrentkitty磁力猫
  • 投资做网易bobo一样的社区视频网站大概需要多少资金企业营销模式
  • 淄博网站制作设计360广告推广平台