在Linux中,指向指针的指针与指针数组:(1)定义一个指向指针的指针变量p,整型的指针数组int *a[3],定义3个

动态 未结 0 3
邮箱用户_pb5l1
邮箱用户_pb5l1 LV1 3小时前 发表
摘要:
在Linux中,指向指针的指针与指针数组:(1)定义一个指向指针的指针变量p,整型的指针数组int *a[3],定义3个整型变量x, y, z,使指针数组a中的每一个元素分别指向变量x,y,z,使p指向数组a的每一个元素,编程实现利用p输出x,y,z的值以及其地址。(2)定义一个指向指针的指针变量pt,一个字符指针数组s,并使数组s中的每一个元素分别指向字符串“hello”、“world”,“123”,利用指向指针的pt将指针数组s指向的每个字符串输出。
以下是C语言代码,实现了上述要求: ```c #include int main() { // (1)定义指向指针的指针变量p和整型指针数组int *a[3] int *p; int *a[3]; // 定义整型变量x, y, z int x = 10, y = 20, z = 30; // 使指针数组a中的每一个元素分别指向变量x,y,z a[0] = &x; a[1] = &y; a[2] = &z; // 使p指向数组a的每一个元素 for (int i = 0; i < 3; i++) { p = a + i; // p指向数组a的当前元素 printf("Value of %c: %d, Address: %p\n", 'x' + i, *(p), (void *)p); } // (2)定义指向指针的指针变量pt和字符指针数组s char *pt; char *s[3]; // 使数组s中的每一个元素分别指向字符串“hello”、“world”,“123” s[0] = "hello"; s[1] = "world"; s[2] = "123"; // 利用指向指针的pt将指针数组s指向的每个字符串输出 for (int i = 0; i < 3; i++) { pt = s + i; // pt指向数组s的当前元素 printf("String %d: %s\n", i + 1, *pt); } return 0; } ``` 这段代码中,我们首先定义了一个指向指针的指针变量`p`和一个整型指针数组`a`。然后定义了三个整型变量`x`、`y`和`z`,并将指针数组`a`的元素分别指向这三个变量。通过循环,我们使用`p`遍历数组`a`并输出每个变量的值和地址。 接着,我们定义了一个指向指针的指针变量`pt`和一个字符指针数组`s`。将字符指针数组`s`的元素分别指向三个字符串常量。同样通过循环,我们使用`pt`遍历数组`s`并输出每个字符串的内容。 注意:`printf`函数中使用的`%p`格式化字符串用于打印指针地址,输出的地址可能会因编译器、操作系统和程序运行时的不同而不同。在`printf`中使用`(void *)p`是为了避免编译器警告,因为`%p`期望一个`void *`类型的参数。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复