c++关于字符数组的初始化和赋值问题

2020-05-18 科技 116阅读
初始化和赋初值并不是一回事。初始化是由编译器语句完成的,形成.exe文件后那些初始化结果已经在某个地方放着,不需要再占用执行时间了;赋初值是由C/C++语句完成的,每次启动.exe文件都要执行一遍,所以要占用代码的执行时间。比如:char a[20]="What for";就是编译器语句,编译时编译器把""中的8个字符一个接一个地存放到为char型数组a分配的20个字符空间的前8个位置,并在第9个位置加放一个'\0'。C和C++都没有提供为数组整体赋值的功能,所以char a[20];a="What for";显然是错误的。要为已经声明过的字符型数组a赋初值,如果要写入的字符串组成是有规律的,则可以用循环语句一个一个地赋值,如果字符串的组成没有规律,则可以用库函数进行拷贝赋值,例如char a[20];strcpy(a,"What for");,strcpy就把What for存放在了a的前8个字节,并在第9个字节存一个'\0'作为结束符。使用库函数要包含相应的头文件,strcpy在string.h中就有。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com