1. C 语言中的指针和指针数组
C 语言是一门比较原始的编程语言,同时也是一门非常强大的编程语言。在 C 语言中,指针和指针数组被广泛地应用于各种场合,用来简化代码和提高程序执行效率。
指针是一个存储变量地址的变量,在 C 语言中,可以通过指针来操作和访问该地址存储的变量,从而改变变量的值。指针可以指向不同的数据类型,包括整数、字符、浮点数、数组、甚至是其他指针类型。指针常用于动态内存分配、数组操作、函数参数传递、结构体和指针操作等。
指针数组是一个数组,它的每个元素都是一个指针。每个指针可以指向不同的数据类型或对象。我们可以使用指针数组来方便地访问不同类型或对象的数据。指针数组的使用需要理解二级指针(也就是指向指针的指针)。
2. 打印指向字符串的指针数组及其地址
2.1 示例代码
#include
int main()
{
char *str[] = {"apple", "banana", "orange", "grape"};
int i, n = 4;
for(i = 0; i < n; i++)
{
printf("str[%d] = %s \n", i, str[i]);
printf("Address of str[%d] = %p \n", i, &str[i]);
}
return 0;
}
2.2 代码解析
上述代码定义了一个指针数组 str
,它包含了四个指向字符串的指针元素。接下来,我们使用 for
循环语句遍历整个数组,并分别打印每个元素的值以及它的地址。
在 printf
语句中,我们使用了 %s
和 %p
来分别输出字符串和地址。其中 %s
表示输出字符串,需要传递一个指向字符串的指针作为参数,而 %p
表示输出地址,需要传递一个指向一个变量或数据的指针变量作为参数。
运行上述代码,输出结果如下:
str[0] = apple
Address of str[0] = 0x7ffc28b8e0b0
str[1] = banana
Address of str[1] = 0x7ffc28b8e0b8
str[2] = orange
Address of str[2] = 0x7ffc28b8e0c0
str[3] = grape
Address of str[3] = 0x7ffc28b8e0c8
在上面的输出中,我们可以看到每个数组元素的值和它的地址。每个元素的地址都是以 16 进制表示的。
3. 总结
指针数组是 C 语言中一个非常有用的数据结构,它可以方便地访问不同类型或对象的数据,并且可以大大简化代码。掌握指针数组的使用和操作,可以帮助我们更好地理解 C 语言程序的底层实现,从而写出更加高效、优美的代码。