#include <stdio.h>
const char *getstr()
{
const char *s = "hello world"; //返回一个常量字符串地址是有效的
return s;
}
int main()
{
printf("%s\n",getstr());
return 0;
}
#include <stdio.h>
const char *getstr()
{
char s[100] = "hello world"; //返回一个栈上的地址是无意义的,因为函数结束即释放
return s;
}
int main()
{
printf("%s\n",getstr());
return 0;
}
#include <stdio.h>
int main()
{
int i = 9;
int a = ++i++; //先计算i++,得到的值是没有内存存放的,无法作为左值。无法再++i
printf("%d\n",a);
}
int gbk2utf8(char *src, size_t *srclen, char *dest, size_t *destlen)
{
iconv_t cd = iconv_open("UTF8", "GBK"); //源字符串为GBK,目标UTF8
if (cd == (iconv_t) - 1)
{
printf("open iconv error %s\n", strerror(errno));
return -1;
}
size_t rc = iconv(cd, &src, srclen, &dest, destlen); //将src字符串转化为目标dest
if (rc == (size_t) - 1)
{
printf("iconv error %s\n", strerror(errno));
return -1;
}
iconv_close(cd);
return 0;
}
原文:http://www.cnblogs.com/l6241425/p/3972030.html