标签:
if( x =y ) foo();
而使用:
if( (x = y) != 0) foo();
2. 注意编码规范,一定要在赋值号 “=”两边,写上空格,以避免如下的 无意识错误。
a = -1;
但是没有加空格:
a=-1;
这会被编译器翻译成:(这里猜测应该是很老的编译器才有这种解释,现在都是用 “+=”和“-=”运算符)
a = a - 1;
3.进制的表示
int a ; a = 141; /*十进制*/ printf("a:%d \r\n" ,a); a = 0215; /*八进制,以数字“0”开头*/ printf("a:%d \r\n" ,a); a = 0x8D; /*十六进制*/ printf("a:%d \r\n" ,a);
a = 0195; /*八进制*/
4.字符与字符串
char * str = "test string address."; char * str1 = "test string address."; cout<<hex<<(int)( str)<<endl;/*以16进制无符号形式输出*/ cout<<(int )(str1)<< endl; cout<<(int )("test string address.")<< endl;; printf("Ox%x \r\n" ,str); /*以16进制无符号形式输出*/ printf("Ox%x \r\n" ,str1); printf("Ox%x \r\n" ,"test string address.");
分别用C和C++的输出流,输出”test string address.”的地址,发现是一样的。
printf(‘\n‘ ); /*报错*/ printf("\n" );
int a ; a = ‘yes‘ ;
这时候,相当于把 int 变量当作一个 char [4]的数组,‘yes‘会被高位对高位,低位对低位的填充进a中。
cout <<(char )a<< endl; cout <<(char )(a>>8)<< endl; cout <<(char )(a>>16)<< endl; cout <<(char )(a>>24)<< endl;
cout <<(char )a<< endl; cout <<(char )(a>>8)<< endl; cout <<(char )(a>>16)<< endl; cout <<(int )(a>>24)<< endl;
int a ; a = ‘abcde‘ ;
标签:
原文地址:http://www.cnblogs.com/zhxshseu/p/5144657.html