随笔分类 - C/C++
摘要:char *s="string"的内容是不可以改的void main(){ char* pStr1 = "Hello!"; char pStr2[] = "Hello!"; change(pStr1); change(pStr2);}void change(char* pInstr){ pInstr[0]='O';}两种change编译都可以通过,但发现第二个change是可以正确地修改第一个字母为'O',而第一个会操作失败导致程序死掉。为什么会这样呢,首先要搞清楚编译程序占用的内存的分区形式:一个由c
        阅读全文
            
摘要:问:有人告诉我不能在printf中使用%lf。为什么printf()用%f输出double型,而scanf却用%lf呢?答:printf的%f说明符的确既可以输出float型又可以输出double型。根据“默认参数提升”规则(在printf这样的函数的可变参数列表中,不论作用域内有没有原型,都适用这一规则)float型会被提升为double型。因此printf()只会看到双精度数。参见问题15.2。对于scanf,情况就完全不同了,它接受指针,这里没有类似的类型提升。(通过指针)向float存储和向double存储大不一样,因此,scanf区别%f和%lf。下表列出了printf和scanf对
        阅读全文
            
摘要:原文来自 http://haofu123.blog.163.com/blog/static/178294920096243161997/利用widechartomultibyte来转换的函数通常适合于window平台上使用#include<tchar.h>#include<windows.h>int_tmain(intargc,_tchar*argv[]){wchar_tpwstr[]=l"我是中国人";wchar_tpwstr2[20];char*pcstr=(char*)malloc(sizeof(char)*(2*wcslen(pwstr)+1
        阅读全文
            
 
                    
                
 
 浙公网安备 33010602011771号
浙公网安备 33010602011771号