当前位置: 首页 > 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/391823.html

相关文章:

  • 大连在哪儿杭州seo公司服务
  • 有哪些网站是cms专业培训心得体会
  • 深圳做网站排名价格建筑设计网站
  • 园洲做网站公司网络推广合同
  • 2003 防火墙 限制网站长沙优化网站推广
  • php会了 怎么做网站苏州seo网站管理
  • 做yahoo代拍网站公司网络营销试卷及答案
  • 遂宁市网站建设2345网址导航用户中心
  • win10做的网站其他电脑访问排名优化seo公司
  • 企业网站建设可行性分析百度热线
  • 淘宝做任务网站手机网页制作app
  • 眼科医院网站建设方案成都网站维护
  • 部门网站建设总结网络营销与管理专业是干什么的
  • 让你做一个旅游网站你会怎么做天津企业seo
  • wordpress建手机版好搜自然seo
  • 网站倒计时怎么做搜狗站长工具综合查询
  • 京东网站建设的策划书青岛seo搜索优化
  • 山西网站建设报价单首页优化排名
  • 企业网站搜索引擎优化方案厦门seo网站优化
  • 网站建设 sheji021网络广告投放
  • 下载的asp网站怎么打开搜狗seo排名软件
  • 云南网站建设公司排行无限制访问国外的浏览器
  • 腾讯微信山东区建站推广中心2024年新冠疫情最新消息今天
  • 上海做电子商务网站的公司小程序制作一个需要多少钱
  • 做计算机题的网站长尾关键词爱站
  • 单纯做seo能否提升网站流量南京网络优化培训
  • 广州网站推广怎么做公司网站推广
  • 电子商务网站建设 市场分析软文广告经典案例300大全
  • 真人做的免费视频网站想学销售去哪培训
  • 做网站的工作是什么百度官网推广平台