找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3159|回复: 8
打印 上一主题 下一主题
收起左侧

keil C语言不能创建变量数组吗error C247: non-address/-constant initializer

[复制链接]
跳转到指定楼层
楼主
ID:989745 发表于 2022-7-2 01:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. char a=1;char b=2;
  2. void main()
  3. {
  4.         char i[2]={a,b};
  5. }
复制代码
提示:error C247: non-address/-constant initializer。但同样的代码用dev就能正常编译
  1. char a[2]={1,2};
  2. void main()
  3. {
  4.         char *p[2];char i=2;
  5.         for (i;i>0;i--)
  6.         {
  7.                 p[i]=&a[i];
  8.         }
  9. }
复制代码
指针数组就不会报错
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2022-7-2 04:52 | 只看该作者
MDK可以编译通过,因为装了MDK所以没装C51,其他人可以试试。
回复

使用道具 举报

板凳
ID:415064 发表于 2022-7-2 08:20 | 只看该作者
第一个   char i[2]={a,b}; 改为 char i[2]={1,2};试下
回复

使用道具 举报

地板
ID:275826 发表于 2022-7-2 17:42 | 只看该作者
第一段是赋值,第二段是定义,当然第一段错误了
回复

使用道具 举报

5#
ID:989745 发表于 2022-7-2 22:52 | 只看该作者
wojiaoguogai 发表于 2022-7-2 08:20
第一个   char i[2]={a,b}; 改为 char i[2]={1,2};试下

那样就不是变量数组了呀
回复

使用道具 举报

6#
ID:989745 发表于 2022-7-2 22:55 | 只看该作者
tyrl800 发表于 2022-7-2 17:42
第一段是赋值,第二段是定义,当然第一段错误了

但用dev就能编译通过
回复

使用道具 举报

7#
ID:101950 发表于 2022-7-3 10:50 | 只看该作者
char i[2]={‘a’,‘b’};
回复

使用道具 举报

8#
ID:61140 发表于 2022-7-3 19:28 | 只看该作者
数组里面包括数组都可以
回复

使用道具 举报

9#
ID:883242 发表于 2022-7-4 06:10 | 只看该作者
tyrl800 发表于 2022-7-2 17:42
第一段是赋值,第二段是定义,当然第一段错误了

我在沙发位已经说过了,MDK编译通过,完全没有错误。

问题是小白们把MDK叫Keil C,把C51也叫Keil C,把我弄懵逼了。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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