字符为键的数组,默认值为0

时间:2015-06-04 09:56:44

标签: c++

我在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};

我该怎么做?

3 个答案:

答案 0 :(得分:4)

如果cchar变量,您可以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[] .. 97122a)留出空间,或者您可以移动键并使用z代表0a代表1,依此类推。

后者是bC和使用单词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字符串,然后使用它。