#include <stdio.h>
struct a_st
{
char *a;
};
int main(int argc,char*argv[])
{
struct a_st ST={"hello"};
printf("a: %s\n",ST.a);
ST.a="world";
printf("a: %s\n",ST.a);
return 0;
}
将结构体数据成员的 char* 改成 const char *即可:
#include <stdio.h>
struct a_st
{
const char *a;
};
int main(int argc,char*argv[])
{
struct a_st ST={"hello"};
printf("a: %s\n",ST.a);
ST.a="world";
printf("a: %s\n",ST.a);
return 0;
}
运行结果:
a: hello
a: world
本文展示了如何在C语言中使用结构体成员为const char*的情况。通过修改结构体定义,将成员a从char*改为const char*,确保其不可被后续赋值。代码示例中,虽然尝试将ST.a赋值为world,但实际运行结果显示,const的特性使得赋值无效,保持了原有的hello值。这体现了const关键字在C语言中的作用和内存管理原则。
3278

被折叠的 条评论
为什么被折叠?



