gpt4 book ai didi

c - 使用 char 指针和整数指针

转载 作者:太空宇宙 更新时间:2023-11-04 03:26:23 24 4
gpt4 key购买 nike

我的问题是关于取消引用 char 指针

这是我的代码 -

#define MAX 10

char s[80]="Hello";

int main(){

char *stackValue;

stackValue=&s;//here I assined the address of s to stackValue

if(!stackValue){

printf("No place for Value");

exit(1);

}

else{

printf("\n%s",*stackValue);//This doesn't work with * before it

printf("\n%s",stackValue);//This works properly
}
return 0;
}

在上面的代码中,我将 S[] 的地址分配给了 stackValue,当我打印 *stackValue 时它不起作用,

但如果我只打印 'stackValue' 那行得通。

当我对整数做同样的事情时

int main(){
int i=10, *a;
a=&i;
printf("%d",*a);//this gives the value
printf("%d",a)//this gives the address
return 0;
}

打印的是char指针和integer指针是不一样的。当我在 int 值中使用 * 时,它给出了值,但当我将它用作 char 指针时却给出了错误。

帮帮我?

最佳答案

第一个代码片段:

stackValue=&s; 是不正确的,因为 s 已经是一个 char 数组。如果你这样写,那么 stackValue 就会变成 指向 char 的指针(而不是指向 char 的指针)。

通过更改为 stackValue=s;

来解决这个问题

另外,%s 期待一个指向 char 的指针(不是指向指向 char 的指针的指针)- 这解释了为什么这不起作用printf("\n%s",*stackValue);//这不起作用

您需要 printf("\n%s",stackValue); 代替。


第二个代码片段。

a=&i; 没问题,因为 i 是单个 int,而不是数组。

关于c - 使用 char 指针和整数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40859569/

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