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

网站建设技术app下载旅行社门店做网站嘛

网站建设技术app下载,旅行社门店做网站嘛,知更鸟wordpress 怎样,软文推广的标准类型指针可以指向一份普通类型的数据#xff0c;例如 int、double、char 等#xff0c;也可以指向一份指针类型的数据#xff0c;例如 int *、double *、char * 等。 如果一个指针指向的是另外一个指针#xff0c;我们就称它为二级指针#xff0c;或者指向指针的指针。 假设…指针可以指向一份普通类型的数据例如 int、double、char 等也可以指向一份指针类型的数据例如 int *、double *、char * 等。 如果一个指针指向的是另外一个指针我们就称它为二级指针或者指向指针的指针。 假设有一个 int 类型的变量 ap1是指向 a 的指针变量p2 又是指向 p1 的指针变量它们的关系如下图所示 将这种关系转换为C语言代码 int a 100; int *p1 a; int **p2 p1;指针变量也是一种变量也会占用存储空间也可以使用获取它的地址。C语言不限制指针的级数每增加一级指针在定义指针变量时就得增加一个星号*。p1 是一级指针指向普通类型的数据定义时有一个*p2 是二级指针指向一级指针 p1定义时有两个*。 如果我们希望再定义一个三级指针 p3让它指向 p2那么可以这样写 int ***p3 p2;四级指针也是类似的道理 int ****p4 p3;想要获取指针指向的数据时一级指针加一个*二级指针加两个*三级指针加三个*以此类推请看代码 #include stdio.h int main(){int a 100;int *p1 a;int **p2 p1;int ***p3 p2;printf(%d, %d, %d, %d\n, a, *p1, **p2, ***p3);printf(p2 %#X, p3 %#X\n, p2, p3);printf(p1 %#X, p2 %#X, *p3 %#X\n, p1, p2, *p3);printf( a %#X, p1 %#X, *p2 %#X, **p3 %#X\n, a, p1, *p2, **p3);return 0; }运行结果 100, 100, 100, 100 p2 0X28FF3C, p3 0X28FF3C p1 0X28FF40, p2 0X28FF40, *p3 0X28FF40a 0X28FF44, p1 0X28FF44, *p2 0X28FF44, **p3 0X28FF44*p3 得到的是 p2 的值也即 p1 的地址*(*p3) 得到的是 p1 的值也即 a 的地址经过三次“取值”操作后*(*(*p3)) 得到的才是 a 的值。 指针数组 如果一个数组中的所有元素保存的都是指针那么我们就称它为指针数组。指针数组的定义形式一般为 dataType *arrayName[length];[ ] 的优先级高于* 该定义形式应该理解为 dataType *(arrayName[length]); 括号里面说明 arrayName 是一个数组包含了 length 个元素括号外面说明每个元素的类型为 dataType * 。 除了每个元素的数据类型不同指针数组和普通数组在其他方面都是一样的下面是一个简单的例子 #include stdio.h int main(){int a 16, b 932, c 100;//定义一个指针数组int *arr[3] {a, b, c};//也可以不指定长度直接写作 int *arr[]//定义一个指向指针数组的指针int **parr arr;printf(%d, %d, %d\n, *arr[0], *arr[1], *arr[2]);printf(%d, %d, %d\n, **(parr0), **(parr1), **(parr2));return 0; }运行结果 16, 932, 100 16, 932, 100arr 是一个指针数组它包含了 3 个元素每个元素都是一个指针在定义 arr 的同时我们使用变量 a、b、c 的地址对它进行了初始化这和普通数组是多么地类似。 parr 是指向数组 arr 的指针确切地说是指向 arr 第 0 个元素的指针它的定义形式应该理解为 int *(*parr) 括号中的 * 表示 parr 是一个指针括号外面的 int * 表示 parr 指向的数据的类型。arr 第 0 个元素的类型为 int * 所以在定义 parr 时要加两个 *。 第一个 printf() 语句中arr[i] 表示获取第 i 个元素的值该元素是一个指针还需要在前面增加一个 * 才能取得它指向的数据也即 *arr[i] 的形式。 第二个printf() 语句中parri 表示第 i 个元素的地址*(parri) 表示获取第 i个元素的值该元素是一个指针**(parri) 表示获取第 i 个元素指向的数据。 指针数组还可以和字符串数组结合使用请看下面的例子 #include stdio.h int main(){char *str[3] {c.biancheng.net,C语言中文网,C Language};printf(%s\n%s\n%s\n, str[0], str[1], str[2]);return 0; }运行结果 c.biancheng.net C语言中文网 C Language需要注意的是字符数组 str 中存放的是字符串的首地址不是字符串本身字符串本身位于其他的内存区域和字符数组是分开的。 也只有当指针数组中每个元素的类型都是 char * 时才能像上面那样给指针数组赋值其他类型不行。 为了便于理解可以将上面的字符串数组改成下面的形式它们都是等价的。 #include stdio.h int main(){char *str0 c.biancheng.net;char *str1 C语言中文网;char *str2 C Language;char *str[3] {str0, str1, str2};printf(%s\n%s\n%s\n, str[0], str[1], str[2]);return 0; }当涉及到多维数据结构时C语言提供了一维、二维和三维指针来处理这些数据。指针是一种特殊类型的变量它存储了内存地址可以用于访问和操作内存中的数据。本文将详细介绍C语言中一维指针、二维指针和三维指针的内存结构并提供相应的C语言示例来加深理解。 一维指针 一维指针是处理一维数组的重要工具。它存储数组的首个元素的内存地址并可用于遍历整个数组。一维数组在内存中是连续存储的因此一维指针可以按顺序访问数组的各个元素。 int arr[5] {1, 2, 3, 4, 5}; int *ptr arr; // 定义一维指针并指向数组的首个元素for (int i 0; i 5; i) {printf(%d , *(ptr i)); }上述示例中我们定义了一个包含5个元素的整型数组arr然后定义了一个指向 arr 的一维指针 ptr。通过指针ptr我们使用指针算术运算来遍历数组并使用间接引用运算符*访问每个元素的值。 二维指针 二维指针用于处理二维数组它存储了二维数组每个元素的内存地址。二维数组在内存中以行优先的方式存储即每一行的元素是连续存储的。二维指针可以通过指向每个一维数组的指针来访问和操作二维数组的元素。 int matrix[3][3] {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int **ptr (int **)malloc(3 * sizeof(int *));for (int i 0; i 3; i) {ptr[i] matrix[i]; }for (int i 0; i 3; i) {for (int j 0; j 3; j) {printf(%d , *(*(ptr i) j));}printf(\n); }free(ptr);在上述示例中我们定义了一个包含3行3列的二维整型数组matrix。然后我们使用二维指针 ptr 动态分配了3个指针的内存空间并将每一行的首地址赋给二维指针。通过二维指针 ptr我们使用指针算术运算来访问和操作二维数组的元素。 三维指针 三维指针用于处理三维数组它存储了三维数组每个元素的内存地址。三维数组在内存中的存储方式比较复杂它需要使用多级指针来表示。通过多级指针我们可以访问和操作三维数组的元素。 int cube[2][2][2] {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}}; int ***ptr (int ***)malloc(2 * sizeof(int **));for (int i 0; i 2; i) {ptr[i] (int **)malloc(2 * sizeof(int *));for (int j 0; j 2; j) {ptr[i][j] (int *)malloc(2 * sizeof(int));for (int k 0; k 2; k) {ptr[i][j][k] cube[i][j][k];}} }for (int i 0; i 2; i) {for (int j 0; j 2; j) {for (int k 0; k 2; k) {printf(%d , *(*(*(ptr i) j) k));}printf(\n);}printf(\n); }for (int i 0; i 2; i) {for (int j 0; j 2; j) {free(ptr[i][j]);}free(ptr[i]); } free(ptr);在上述示例中我们定义了一个包含2个2行2列的三维整型数组cube。然后我们使用三维指针 ptr 动态分配了对应的内存空间并将每个元素的值赋给三维指针。通过三维指针 ptr我们使用指针算术运算来访问和操作三维数组的元素。
http://www.zqtcl.cn/news/827143/

相关文章:

  • h1z1注册网站wordpress 按标题搜索
  • 院校网站建设对比分析实训报总结陕西省建设网三类人员官网
  • 嘉兴网站建设兼职企业做网站公司
  • 做网站赚钱流程漂亮的个人网站
  • 湖州建设局网站青海最新信息
  • 长沙专业做网站的公司制作网站赚钱吗
  • 局域网网站架设软件徐州地产开发公司招聘
  • wordpress无法添加媒体百度官网优化
  • 安徽教育云网站建设贾汪网站开发
  • 商业设计网站推荐用图片设置网站首页
  • 同ip网站有什么危害软文营销的特点有哪些
  • 用动易做的校园网站成品网站 免费试用
  • 没有网站做cpa怎么赚钱网站模板中企动力
  • 商会联盟网站建设方案免费的个人空间建网站
  • 徐州网站建设4个人网站设计师
  • 易企秀网站怎么做轮播图装饰设计公司wordpress主题
  • 网站建设搜索优wordpress the
  • 怎么做点图片连接网站北京大学网络服务
  • 家具制作网站台州网页设计公司
  • 优化网站 提高查询建设综合购物网站
  • 农产品网站设计方案湖南长沙网站建设公司
  • 网站过期查询服务器放网站吗
  • 郑州做网站的外包公司有哪些大连seo排名
  • 写小说的网站自己做封面2008年做的网站
  • 哈尔滨做网站哪家好强企业邮箱登录入口163
  • 网站点击率原因学php到做网站要多久
  • 哪里有创建网站的长沙网站seo技巧
  • 影楼公共网站wordpress提交360
  • 哪有做网站东莞中堂网站建设
  • 什么叫域名访问网站网络运营管理