一个自己没有注意到的细节,关于C/C++数组的初始化,比如下面的写法:
int a[100]={-1};
我想将数组全都赋值为-1,但上面的语法只是将第一个元素设置为-1了,其他的都是0,貌似只能老老实实的写一个循环或者memset了。
类似还有下面的内容:
char a[100]="abc";
从a[3]开始全都是0
一个自己没有注意到的细节,关于C/C++数组的初始化,比如下面的写法:
int a[100]={-1};
我想将数组全都赋值为-1,但上面的语法只是将第一个元素设置为-1了,其他的都是0,貌似只能老老实实的写一个循环或者memset了。
类似还有下面的内容:
char a[100]="abc";
从a[3]开始全都是0
这次的内容纯粹是用来消磨乘车时间想出来的,基本上没有太大的实际用途,因此,华而不实,对这类无喜好的可以退出了。
功能:字符串遍历,比如给定一个字符串”abc”,依次输出’a’,’b’,’c’。
代码一:我最常看到的:
#include
int main(int argc, char *argv[])
{
char* str = "abc";
int i = 0;
for( i = 0; i < strlen(str); i++)
printf("%c\n", str[i]);
return 0;
}
上述代码的一个问题是,总是调用strlen函数(不考虑优化),于是有了下面的变种: