1、错误: double d=2/128;
2、错误:for(int i=0;i<10;i++) ....
3、错误:char* dir;
4、意图:将字符串dir="output"链接到一个空字符串上。
5、数组a(int a[5];)作为函数f的参数时,看下面几种函数f定义时的情况:
6、数组只有在定义时初始化才可以使用{}对其赋值,在定义语句后面另加一条语句对用{}对数组初始化是不对的;用{}对数组初始化时,{}内的值可以是变量,不必都是常量。
7、用二维数组当作参数时,如int a[2][2];
8、关于优先级
关系操作符(<、>)的优先级比赋值运算符(=)的优先级高。
int test=1>2;
以上语句的执行结果,test是0(代表1>2错误),而不是1.
9、C语言中在数组定义时不能使用这种形式:
int[10] a;
int[]这种形式只能在写函数的参数中使用。
10、
const char *const * pp
实质上是定义了一个指向字符串的二级指针,蓝色的const 限制一级指针指向的内容不能修改,红色的const限制二级指针指向的内容不能修改。
11、C/C++中,++、--操作符的优先级比解引用操作符*的优先级高。例子如下:
int a[5]={1,5,9,14,43};
int* ap=a;
cout<<*ap;
*ap++;
cout<<"and"<<*ap<<endl;
以上代码片段输出结果是:1and5,即是对指针先进行++操作,在解引用指针的值,而不是对解引用的值进行++操作。
char* str="abc";
char* str1="abc";
if(str==str1)
cout<<true<<endl;
else
cout<<false<<endl;
以上代码片段的输出结果为:1。
const char str[]="abc";
const char str1[]="abc";
if(str==str1)
cout<<true<<endl;
else
cout<<false<<endl;
以上代码片段输出结果为:0。