社区
C语言
帖子详情
要变量名循环的话,该怎么处理?
cglee
2005-08-29 04:11:18
例如程序中,有
a0,a1,a2,a3,...,a8,a9,等这样的变量名称,
要是在循环里该怎么处理,而不必一个一个写出所有的名字,
可以和数组a[i]一样循环?
...全文
508
19
打赏
收藏
要变量名循环的话,该怎么处理?
例如程序中,有 a0,a1,a2,a3,...,a8,a9,等这样的变量名称, 要是在循环里该怎么处理,而不必一个一个写出所有的名字, 可以和数组a[i]一样循环?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nicholasfor
2005-08-30
打赏
举报
回复
用简单的方法是无法实现的,把变量值转化成变量名相当于将字符串变成表达式,难度可想而知。
不过仔细想想这种做法也无意义,因为每个变量都要定义过的,那这样的话还是定义数组方便一些,比挨个定义每一个变量好多了吧。
楼上那么多高手都无法解决。我也只好人云亦云了。
gaogc
2005-08-30
打赏
举报
回复
在循环语句中,用String对象将a和1、2、3、4、......、9连接起来,然后就可以用了,具体我也没实践过,自己试一试了。呵呵!
cglee
2005-08-30
打赏
举报
回复
好像很难啊,最好的方法就是变通用数组了。
以前看过一个游戏的程序,有过类似的用法,
用到宏定义及“##”,但它是用来定义什么的,倒忘了
akun
2005-08-30
打赏
举报
回复
xxx a1,a2..a9;
xxx *a[9] = {&a1,&a2,&a3..&a9}
用*a[i] 代替 ai吧~
Bobby136
2005-08-30
打赏
举报
回复
当然没有人会这么用!
Bobby136
2005-08-30
打赏
举报
回复
全局变量可以如下
int a0=1,a1=2,a2=3,a3=4,a4=5,a5=6;
int a6=7,a7=8,a8=9,a9=10;
int main()
{
for(int i=0;i<10;i++)
{
cout<<*(((int*)&a0)+i)<<endl;
}
return 0;
}
xiaocai0001
2005-08-30
打赏
举报
回复
楼上的也只是利用,局部变量分配空间是连续的这一特性,但如果不是连续的呢?
这种作法可不可靠还是一个问题,最好不要用
Bobby136
2005-08-30
打赏
举报
回复
局部变量可以实现
int a0=1,a1=2,a2=3,a3=4,a4=5,a5=6;
int a6=7,a7=8,a8=9,a9=10;
for(int i=0;i<10;i++)
{
cout<<((int*)&a9)[9-i]<<endl;
}
now123
2005-08-30
打赏
举报
回复
基本上
这个
很难!!
应该是不可能的。
leehq
2005-08-30
打赏
举报
回复
C是比较低级的语言,所以你想都不要想这种东西!
xiaocai0001
2005-08-29
打赏
举报
回复
楼上:
这样不行的~~
确实用宏定义 ##可以连接串
比如
#define a(i) a##i
在程序中若有 a(2)则宏替换成 a2
但想要
for(int i=0; i<10; i++)
a(i) = i;
//这样是不行的, 宏替换在程序运行前操作的,它会把a(i)替换成ai而不是根据i的值来替换
shenpipi
2005-08-29
打赏
举报
回复
define和##也不能完全实现.
jixingzhong
2005-08-29
打赏
举报
回复
楼住的这个问题我曾经仔细想过,结论是....
有一个办法可以连接数字,但是,有一个问题,着个数字不知道要求是不是固定的,能不能说根据程序来设计一个递增...
关键是用 ## 来连接:
#define ... a ## n ... (糊涂了 ,好象是 ## 连接的吧 )
其中的 N 做一个改变 ,比如递增
这个只是我的想法,不知道可不可以 ....
shenpipi
2005-08-29
打赏
举报
回复
似乎很多人都有这种想法.
K
2005-08-29
打赏
举报
回复
int a[100];
for (int i=0;i<100;i++)
a[i]=i;
int a1,a2,a3,a4,a5,a6;//...
a1=0;
a2=1;
a3=2;
a4=3;
a5=4;
a6=5;//...
lujun-cc
2005-08-29
打赏
举报
回复
没见过的用法!
bugebear3
2005-08-29
打赏
举报
回复
对,用数组
梦里饭香
2005-08-29
打赏
举报
回复
在javascript中可以这样实现:
String s="a";
for(int i=0;i<10;i++){
s=s+1;
s="int "+s+"="+i;
eval(s);
}
类似这样,可能有细节问题。
java中不知道能不能这样实现
megaboy
2005-08-29
打赏
举报
回复
做不到的,没有标识符化这样的东西。
变通一下就是用a[i]这种形式了。
python
变量名
称跟着
循环
_Python 变量
循环
Python变量定义规则如下:
变量名
只能是字母、数字或下划线的任意组合
变量名
的第一个字符不能是数字关键字不能当
变量名
,如下:'and'、'as'、'assert'、'break'、'class'、'continue'、'def'、'del'、'elif'、'else'...
【MATLAB】for
循环
变量名
变化的实现
自动
循环
变量名
Python
循环
创建
变量名
locals 中是当前程序段中的全部
变量名
是一个字典的形式 所以我们新增的话,直接和字典那样就行了 names = locals() #获取当前程序段中的全体局部
变量名
for i in np.arange(0,10): names[f'name_{i}']=i ...
python
循环
定义变量_Python 变量
循环
Python变量定义规则如下:
变量名
只能是字母、数字或下划线的任意组合
变量名
的第一个字符不能是数字关键字不能当
变量名
,如下:'and'、'as'、'assert'、'break'、'class'、'continue'、'def'、'del'、'elif'、'else'...
python3中 for
循环
中
循环
变量的作用域问题
文章目录python3中 for
循环
中
循环
变量的作用域问题1-1 来看一个例子1-2 来看第二个例子1-3 ...for
循环
中
循环
变量名
和外层 的
变量名
,取名相同,结果直接覆盖了外层变量的值, 由此 我就查了一下 文档有了这篇文章。
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章