社区
C语言
帖子详情
如何把变量转成常量?
wtogether
2005-12-13 12:02:47
申明了一系列数组常量,这样的格式:
char *c0[] = {"a","b","c"};
char *c1[] = {"d","e","f"};
char *c2[] = {"g","h","i"};
................
因为c*的列数比较多,所以,不能一个个的去判段调用哪个数组
现在想用两个变量char buf[10]和int i,引用一个常量
i = 3;
sprintf(buf, "c%d", i);
这个宏应该怎么设置?
...全文
1389
15
打赏
收藏
如何把变量转成常量?
申明了一系列数组常量,这样的格式: char *c0[] = {"a","b","c"}; char *c1[] = {"d","e","f"}; char *c2[] = {"g","h","i"}; ................ 因为c*的列数比较多,所以,不能一个个的去判段调用哪个数组 现在想用两个变量char buf[10]和int i,引用一个常量 i = 3; sprintf(buf, "c%d", i); 这个宏应该怎么设置?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
waterczh
2005-12-14
打赏
举报
回复
有创意
zcz0918
2005-12-14
打赏
举报
回复
#define F(a,n) \
sprintf((char*)(a),(char*)c##n);这样可以用F(buf,1),不过C中串化不能操作字符串的,所以lz的要求还是实现不了
zcz0918
2005-12-14
打赏
举报
回复
#define P(a,n)
wtogether
2005-12-14
打赏
举报
回复
to lyh_bgsky()
这个方法只对常量有效
int g2[3] = {2,3,4};
#define GETME(i,y) \
g##i[1] = y;
... ..... ............
i = 1;
GETME(i,100);
就编译不过了
感谢大家帮助,只有另外想办法了
wtogether
2005-12-13
打赏
举报
回复
那有没有动态赋值的方法,例如申明:
char **c[30] = {};
然后
c[0] = {"a", "b", "c"};
c[1] = {"e", "d", "f"};
.........
不过这种申明编译不过去啊
megaboy
2005-12-13
打赏
举报
回复
你想要的是“标识符化”,但C里没有这样的东西,不行的。老老实实用数组去做吧。
可以用数组这样变通,定义一个二级指针数组,例如:
char **a[N]; //N在0---c*的*之间
然后a[0]=c0,a[1]=c1.......a[N]=cN
a[i]就是对应的数组。
lyh_bgsky
2005-12-13
打赏
举报
回复
谁说不可以,至少在vc 6里可以实现
例:
int g1[3] = {1,2,3};
int g2[3] = {2,3,4};
#define GETME(i,y) \
g##i[1] = y;
... ..... ............
GETME(1,100);
int j = g1[1];
你看值是不是改变了 ^_^
lyh_bgsky
2005-12-13
打赏
举报
回复
说不可以,至少在vc 6里可以实现
例
int g1[3] = {1,2,3};
int g2[3] = {2,3,4};
#define GETME(i,y) \
g##i[1] = y;
... ..... ............
GETME(1,100);
int j = g1[1];
你看值是不是改变了 ^_^
jixingzhong
2005-12-13
打赏
举报
回复
有创意, 但是目前没有可行性 ~
或许以后可以把 标准拓展一下吧 ~ ^_^
arden1019
2005-12-13
打赏
举报
回复
c的宏是不会进入字符串""中解释的。
所以你的i = 3;
sprintf(buf, "c%d", i);
不太好使用宏实现。
Helloooooo
2005-12-13
打赏
举报
回复
可以申明一个指针数组(char*)c[30],
对每一个指针使用时开辟内存然后赋值。
------------------------------------
回复人: wtogether(wtogether) ( ) 信誉:100 2005-12-13 12:50:00 得分: 0
那有没有动态赋值的方法,例如申明:
char **c[30] = {};
然后
c[0] = {"a", "b", "c"};
c[1] = {"e", "d", "f"};
.........
不过这种申明编译不过去啊
csucdl
2005-12-13
打赏
举报
回复
使用这个{}来赋值似乎不妥, {}成为初始化值, 想想他应该用来干什么
goodluckyxl
2005-12-13
打赏
举报
回复
^_^ lz想法有创意
不过是不行的 c只能认出是c**字符串
定义管理类型的数组或者使用链表等数据结构来管理
wtogether
2005-12-13
打赏
举报
回复
兄弟是C语言的,没有类
piaochen_2002
2005-12-13
打赏
举报
回复
老大为什么不用vector<string>呢?
03Go语言实战之
变量
与
常量
课程介绍了go语言当中的
变量
和
常量
使用方法,包含了
变量
的声明方式、简短
变量
声明、
变量
的作用域、指针、按值传递和按址传递的区别、
常量
介绍
c语言
常量
型
变量
转换成
常量
,c语言
常量
和类型转换
c语言061
常量
常量
就是程序执行过程中不发生改变的量
常量
分为整型
常量
、实型
常量
、字符
常量
和字符串
常量
可以参考之前的
变量
,如整型1:1 实型:1.1 字符:a字符串:"apple"
常量
的输出方式和
变量
是一样的字符串的输出...
final修饰的
变量
就是
常量
?
什么是
常量
? 对于这个问题,可能很多人都可以脱口而出 : 用final修饰的
变量
是
常量
,或者是在编译时期定义好的字符串。(字符串
常量
) 但是这种说法是不严谨的,因为准确来说 :
常量
是用final修饰的成员
变量
!
常量
在...
什么是
常量
?什么是
变量
?
常量
就是 程序运行中 不可以改变的量(数据)
变量
就是 程序运行中 可以改变的量(数据)
变量
它其实就是内存一个小区域,用来保存数据的! 由于数据可以改变 所以叫
变量
.
变量
的格式是有规范的!数据类型
变量
名 = 值 数据...
变量
与
常量
一、什么是
变量
,什么是
常量
? 1.
变量
是一个可以不断变化的值。 2.
变量
是一块内存空间。 3.
常量
具有和
变量
一样的概念和性质,不同的是,
常量
不可变化,是固定的,而
变量
可以不断变化。 二、
变量
的概念 1、
变量
...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章