标题: error C247: non-address/-constant initializer 这句C语言程序有什么问题? [打印本页]

作者: jovew    时间: 2022-11-30 15:19
标题: error C247: non-address/-constant initializer 这句C语言程序有什么问题?
uint table1[]={a,f,g,h,j};
uint table2[]={q,w,e,r,t,y,o};


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



作者: Hephaestus    时间: 2022-11-30 19:58
a,f,g,h,j不能是变量!
作者:     时间: 2022-12-1 08:25
uint应该不是变量类型,如果你要定义uint_t,那么{a,f,g,h,j}这些也不能是uint8_t类型,你要定义字符,可以使用char类型
作者: Longan.Wang    时间: 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";
作者: jovew    时间: 2022-12-1 10:13
谢谢!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1