找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 117|回复: 4
收起左侧

error C247: non-address/-constant initializer 这句C语言程序有什么问题?

[复制链接]
ID:97678 发表于 2022-11-30 15:19 | 显示全部楼层 |阅读模式
uint table1[]={a,f,g,h,j};
uint table2[]={q,w,e,r,t,y,o};


请帮忙看看这句程序是什么问题?
编译时,提示如下错误:
error C247: non-address/-constant initializer


回复

使用道具 举报

ID:883242 发表于 2022-11-30 19:58 | 显示全部楼层
a,f,g,h,j不能是变量!
回复

使用道具 举报

ID:405850 发表于 2022-12-1 08:25 | 显示全部楼层
uint应该不是变量类型,如果你要定义uint_t,那么{a,f,g,h,j}这些也不能是uint8_t类型,你要定义字符,可以使用char类型
回复

使用道具 举报

ID:77589 发表于 2022-12-1 09:43 | 显示全部楼层
如果要在声明数组时初始化,填入数组的必须是常量,而你写入的字母编译器不认。
如果你真的是想用字母初始化数组,那么用下面的写法:
uint table1[] = { 'a','f','g','h','j'};
uint table2[] = { 'q','w','e','r','t','y','o'};
如果单纯的想定义一个字符串可以用以下写法:
1、声明char型数组
char table1[] = "afghj";
char table2[] = "qwertyo";
2、声明char型指针
char* table1 = "afghj";
char* table2 = "qwertyo";
回复

使用道具 举报

ID:97678 发表于 2022-12-1 10:13 | 显示全部楼层
谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表