{"id":33,"date":"2008-03-10T20:30:27","date_gmt":"2008-03-10T19:30:27","guid":{"rendered":"http:\/\/linux.leunen.com\/?p=33"},"modified":"2008-03-15T10:34:36","modified_gmt":"2008-03-15T09:34:36","slug":"les-litterales-chaines","status":"publish","type":"post","link":"https:\/\/www.leunen.com\/linux\/2008\/03\/les-litterales-chaines\/","title":{"rendered":"C++ &#8211; Les litt\u00e9rales cha\u00eenes"},"content":{"rendered":"<p>Une <em>litt\u00e9rale cha\u00eene<\/em> est une s\u00e9quence de caract\u00e8res encadr\u00e9es de guillemets. On la d\u00e9clare comme ceci:<\/p>\n<pre class=\"codesource\">\r\n<span class=\"reservedname\">const<\/span> <span class=\"reservedname\">char<\/span> *str = <span class=\"quotedstring\">\"ceci est un string literal\"<\/span>;<\/pre>\n<p>Mais C++ accepte pour des raisons de compatibilit\u00e9 avec du code ancien qu&rsquo;on laisse tomber le const:<\/p>\n<pre class=\"codesource\">\r\n<span class=\"reservedname\">char<\/span> *str = <span class=\"quotedstring\">\"ceci est un string literal\"<\/span>;<\/pre>\n<p>ceci est accept\u00e9 mais d\u00e9sapprouv\u00e9 (deprecated). La raison en est simple. Si vous \u00e9crivez:<\/p>\n<pre class=\"codesource\">\r\n<span class=\"reservedname\">char<\/span> *str = <span class=\"quotedstring\">\"ceci est un string literal\"<\/span>;<\/pre>\n<p>cela veut dire que <em>str<\/em> \u00e9tant un pointeur vers un caract\u00e8re non-constant, vous pouvez le modifier.<\/p>\n<pre class=\"codesource\">\r\n*str = 'C';<\/pre>\n<p>est tout \u00e0 fait l\u00e9gal m\u00eame s&rsquo;il vous est interdit de modifier une cha\u00eene litt\u00e9rale. Autrement dit, votre compilateur ne rousp\u00e8tera pas mais lorsque vous ex\u00e9cuterez ce code vous pouvez tr\u00e8s bien provoquer un Segmentation fault (core dumped) sous Linux ou un Access Violation sous Windows.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Une litt\u00e9rale cha\u00eene est une s\u00e9quence de caract\u00e8res encadr\u00e9es de guillemets. On la d\u00e9clare comme ceci: const char *str = \u00ab\u00a0ceci est un string literal\u00a0\u00bb; Mais C++ accepte pour des raisons de compatibilit\u00e9 avec du code ancien qu&rsquo;on laisse tomber le const: char *str = \u00ab\u00a0ceci est un string literal\u00a0\u00bb; ceci est accept\u00e9 mais d\u00e9sapprouv\u00e9 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/33"}],"collection":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/comments?post=33"}],"version-history":[{"count":0,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/33\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/media?parent=33"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/categories?post=33"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/tags?post=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}