首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

字符串,结构体初始化的有关问题

2012-02-05 
字符串,结构体初始化的问题读代码时碰到如下的对于字符串和结构体的初始化方式,1.字符串savepath为什么用{

字符串,结构体初始化的问题
读代码时碰到如下的对于字符串和结构体的初始化方式,
1.字符串savepath为什么用{0,}来初始化?把第一个元素值赋成0是什么意思?

char   savepath[255]   =   {0,};

2.结构体这样赋值后是不是只有serverdone的值为0,其它值都为NULL?
struct   context
{
                int   serverdone;
                int   clientdone;
                char   *get_name;   /*   Name   of   last   get-request   */
                char   *save_path;
};
struct   context   global_context   =   {0,};



[解决办法]
首个字符赋为null进行截断,这样代表savepath是个空串,否则printf显示的时候是个随机串
[解决办法]
struct context global_context = {0,};//后面的默认以0填充
结构体内所有元素都初始化为0
[解决办法]
NULL == 0
0在字符串中表示为结束符号 '\0 '.
strcpy(str1,str2);
把str2的内容(以指针指向的位置到结束符号的位置)复制到str1中

比如:
char strTmp[10] = {0}; or char strTmp[10] = {NULL};or char strTmp[10] = { '\0 '};
初始化strTmp的10个元素为0;
如果char strTmp[10] = { 'a '}; 就是把strTmp第一个元素初始化为 'a ',其余的为0

热点排行