我在C ++中创建一个数组:
$('.btn1').click(function () {
$('.img1').toggle()
$('.img3').hide().eq($(this).index()).show();
$('.img2').hide().eq($(this).index()).show();
});
$('.btn2').click(function () {
$('.img2').toggle()
$('.img1').hide().eq($(this).index()).show();
$('.img3').hide().eq($(this).index()).show();
});
$('.btn3').click(function () {
$('.img3').toggle()
$('.img1').hide().eq($(this).index()).show();
$('.img2').hide().eq($(this).index()).show();
});
我想使用数组int my_array[100];
代替数字。一切运作良好,但我的程序会生成my_array[a], my_array[b] ...
等,但每个元素的默认值不是0,我不明白为什么。
我试过
my_array[a]++; my_array[b]++;
但没有成功,我不想将每个元素声明为int my_array[100]={0};
我该怎么做?
答案 0 :(得分:4)
如果c
是char
变量,您可以c - 'a'
将其转换为array
索引:
array[c - 'a'] = 0;
这是因为:
'a' - 'a' == 0
'b' - 'a' == 1
'c' - 'a' == 2
etc.
答案 1 :(得分:1)
如果我正确理解你的问题,你期望所有数组项都被初始化为零,在这种情况下,用以下方式声明它: -
int my_array[26] = {0}
注意,如果你想要一个字符数组,你可以这样做,而不是使用整数数组:
char my_array[26] = {static_cast<char>(0)};
答案 2 :(得分:1)
.menu {
float: right;
font-size: 18px;
list-style: outside none none;
margin-top: 10px;
}
.menu li a {
color: blue;
display: block;
text-decoration: none;
}
.menu li {
display: inline;
float: left;
padding-right: 23px;
}
是整数类型的变量(my_array[a]
,C
aso)时, a
才会在char
中生效。
如果您想使用int
,'a'
... 'b'
字符作为数组中的键,那么您必须记住'z'
字符是实际上,数字'a'
(97
字符的ASCII
代码。类似地,'a'
为'b'
,98
为'c'
,依此类推。
您可以声明99
更大,为索引my_array[]
.. 97
(122
至a
)留出空间,或者您可以移动键并使用z
代表0
,a
代表1
,依此类推。
后者是b
,C
和使用单词C++
的其他语言的常用方法,用于相同类型值的连续内存块。事实上,array
数组是映射(也就是字典,散列)和双链表,而不是数组。
您的代码应如下所示:
PHP
作为旁注,即使在int my_array[26] = {0};
my_array['a'-'a'] = 2;
my_array['b'-'a'] = 4;
char ch = 'm';
my_array[ch-'a'] = 123;
中,除非定义了名为PHP
的常量,否则表达式$my_array[a]
不正确。如果要将a
字符用作键,则正确的语法为'a'
。如果未定义名为$my_array['a']
的常量,则a
会发出通知,并将PHP
未定义的符号转换为a
字符串,然后使用它。