c语言指针数组怎么用_c语言题库及详解答案

c语言指针数组怎么用_c语言题库及详解答案C语言指针数组(数组每个素都是指针)详解如果一个数组中的所有素保存的都是指针,那么我们就称它为指针数组。指针数组的定义形式一般为:dataType *arrayName[length];的优先级高于,该定义形式应该理解为:da

C语言指针数组(数组每个素都是指针)详解   如果一个数组中的所有素保存的都是指针,那么我们就称它为指针数组。指针数组的定义形式一般为:   dataType *arrayName[length];   的优先级高于,该定义形式应该理解为:   dataType *(arrayName[length]);   括号里面说明是一个数组,包含了个素,括号外面说明每个素的类型为。   除了每个素的数据类型不同,指针数组和普通数组在其他方面都是一样的,下面是一个简单的例子:   #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   ”, *arr[0], *arr[1], *arr[2]);   printf(“%d, %d, %d   ”, (parr+0), (parr+1), (parr+2));   return 0;   }   运行结果:   16, 932, 100   16, 932, 100   arr 是一个指针数组,它包含了 3 个素,每个素都是一个指针,在定义 arr 的同时,我们使用变量 a、b、c 的地址对它进行了初始化,这和普通数组是多么地类似。   parr 是指向数组 arr 的指针,确切地说是指向 arr 第 0 个素的指针,它的定义形式应该理解为,括号中的表示 parr 是一个指针,括号外面的表示 parr 指向的数据的类型。arr 第 0 个素的类型为 int *,所以在定义 parr 时要加两个 *。   第一个 printf() 语句中,arr[i] 表示第 i 个素的值,该素是一个指针,还需要在前面增加一个 * 才能取得它指向的数据,也即 *arr[i] 的形式。   第二个 printf() 语句中,parr+i 表示第 i 个素的地址,*(parr+i) 表示第 i 个素的值(该素是一个指针),(parr+i) 表示第 i 个素指向的数据。   指针数组还可以和字符串数组结合使用,请看下面的例子:   #include <stdio.h>   int main(){   char *str[3] = {   ”c.biancheng.net”,   ”C语言中文网”,   ”C Language”   };   printf(“%s   %s   %s   ”, str[0], str[1], str[2]);   return 0;   }   运行结果:   c.biancheng.net   C语言中文网   C Language   需要注意的是,字符数组 str 中存放的是字符串的首地址,不是字符串本身,字符串本身位于其他的内存区域,和字符数组是分开的。   也只有当指针数组中每个素的类型都是时,才能像上面那样给指针数组赋值,其他类型不行。   为了便于理解,可以将上面的字符串数组改成下面的形式,它们都是等价的。   #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   %s   %s   ”, str[0], str[1], str[2]);   return 0;   }

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/75589.html

(0)
上一篇 2024年 8月 4日 下午7:56
下一篇 2024年 8月 4日 下午8:04

相关推荐

关注微信