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

相关文章:

  • 天津做网站优化的公司免费seo网站自动推广软件
  • 包装设计网官网南京seo排名优化公司
  • 西安h5响应式网站全网营销推广软件
  • 做平面设计图的网站网页模板代码
  • 简历在线制作网站一个好的产品怎么推广
  • vfp网站开发简阳seo排名优化培训
  • 做网站提供服务器吗合肥seo搜索优化
  • 律师事务所网站建设方案免费seo公司
  • 一步步教做音乐网站百度官方网站入口
  • 柳州企业网站建设最新发布的最新
  • 江门h5模板建站打字赚钱平台 学生一单一结
  • 网站如何做抖音推广网络推广优化是干啥的
  • 自己做免流网站网站推广联盟
  • 扬州做企业网站建站平台有哪些
  • 建设信用卡购物网站谷歌搜索引擎镜像入口
  • 建设银行门户网站关键词搜索查询
  • 互动性网站沈阳关键词优化价格
  • wordpress主题know上海优化seo公司
  • 什么网站是专做代购的sem推广是什么意思
  • 开发一个网页系统需要多少钱网站seo综合查询
  • 线上推广策划方案范文seo难不难学
  • 福建做网站今天新闻
  • 杭州网站维护网站建设培训
  • 做企业平台网站成本篮网最新消息
  • 游戏网站开发实验报告网店运营公司
  • 政府网站信息化工程建设方案网站设计服务企业
  • 排名好的网站开发网站内容seo
  • 网站规划对网站建设起到温州网站快速排名
  • 免费建网站软件下载手机属于免费的网络营销方式
  • 建设网站的网站公司广告网站留电话不用验证码