gpt4 book ai didi

c - 为结构变量定义字符串值

转载 作者:行者123 更新时间:2023-12-04 12:14:58 24 4
gpt4 key购买 nike

我刚刚回答了一些面试问题。遇到了这个与结构相关的问题,我不明白输出中发生了什么,如果有人能解释原因的话。

什么时候在像

这样的结构中使用字符指针
#include <stdio.h>

struct name {
char *array;
}variable;

int main( int argc, char * argv[] ){

variable.array="hello";
printf( "%s\n", variable.array );
}

输出是 hello 打印的,但是当将结构变量更改为

struct name {
char array[10];
}variable;

编译器在

处抛出错误“赋值中的类型不兼容”
variable.array="hello";

我真的很困惑我错过了重点。为什么会显示赋值问题之类的错误??请纠正我谢谢

最佳答案

你只能在声明的时候像这样初始化数组,否则你需要使用

strcpy(variable.array,"hello");

你甚至不能用一个简单的字符数组那样做

char a[10];

a="hello";

编译器会告诉:

incompatible types when assigning to type ‘char[10]’ from type ‘char *’

因为 "hello" 是一个字符串文字,它由一个不能像这样分配给数组的指针保存。

关于c - 为结构变量定义字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4705065/

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