gpt4 book ai didi

c - 数组和指针链

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:43 25 4
gpt4 key购买 nike

正如c书籍中所写,数组名称是指向第一个元素的指针,因此在names数组中,names指向第一个元素,也是指向字符串文字的指针,然后*names将打印第一个元素,但在next代码行 p 指向 a,q 指向 q,就像名字 arr,但是当你打印 *q 你没有得到一个值 3,为什么?

#include <stdio.h>
int main(void){
char *names[]={"jack","philip"};
printf("%s\n",*names);
int a=3;
int *p=&a;
int *q=&p;
printf("%i\n",*q);
return 0;
}

最佳答案

a 是一个 int,所以 p 是一个指向 int 的指针(int * ),因此 q 是指向 int (int **) 的指针。要打印 int,您将该 int 提供给 printf:

printf("This is an int: %i\n", 42);

所以对于 %i 函数 printf 需要一个 int 类型的参数,但是你传递了 *q它的类型是 int *。您传递一个指向 printf 的指针,它不需要数字指针,只需要字符串指针。

关于c - 数组和指针链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34189622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com