gpt4 book ai didi

c++ - 打印时指向常量的指针与指向非常量的指针的行为不同

转载 作者:行者123 更新时间:2023-11-30 18:15:09 25 4
gpt4 key购买 nike

我有以下代码:

int main(int argc, char **argv)
{
printf("%s\n",*argv);
int test = 5;
char* p;
*pint = test;
p = "banana";
printf("%s\n",p);
printf("%d\n",*pint);
}

为什么我必须写 p="banana" 而不是 *p="banana" 但对于整数,它需要是 *pint,否则只会打印整数的地址? p 不应该打印“banana”的地址吗?

最佳答案

  1. 您正在比较数组和整型变量的行为!

  2. p = "香蕉";

您正在将字符串“banana”的基地址分配给指针 p。

printf函数原型(prototype)为

int printf( const char *restrict format, ... );

printf("%s\n",p);

上面的语句意味着您将指针 p 作为参数传递给函数 printf,该函数保存字符串“banana”的地址

关于c++ - 打印时指向常量的指针与指向非常量的指针的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40233113/

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