C++菜鸟常见错误整理(第十天)


本人目前还是学生,能力有限,有不足或者错误的地方欢迎大家指正,谢谢大家!

1、继承方式 

     C++是一个很好的编译语言,因为你的parent(父母)不能访问你的private(隐私),但是你的friend(朋友)可以。

2、变量的声明和定义有什么区别?

      声明变量不分配空间,定义变量要分配空间。声明主要是告诉编译器,后面的引用都按声明的格式。定义其实包含

了声明的意思,同时要分配内存空间。

3、 const的作用是什么?

 (1)可以定义const常量

 (2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,

可以预防意外的变动,能提高程序的健壮性。

4、下列哪两个是等同的
      int b;

 A const int* a = &b; //指向常量的指针,不能通过指针改变b,但指针的地址可以改变。

 B const* int a = &b;// 指针的地址不可以改变,但可以通过指针改变b的值

 C const int* const a = &b; //指针指向的值,和指针本身的地址都不能改变

 D int const* const a = &b;//与c相同

5、 int i=(j=4,k=8,l=16,m=32); printf(“%d”, i); 输出是多少?

    相当于 i=j=4;i=k=8;i=l=16;i=m=32; 故最后i=32;


6、 请写出下面代码在 32 位平台上的运行结果,并说明sizeof的性质:
 #include
#include
int main(void)
 {
 char a[30];
 int a[2];
  sizeof(a);就是4*2
 char *b = (char *)malloc(20 * sizeof(char));
 printf(“%d\n”, sizeof(a));
 printf(“%d\n”, sizeof(b));
 printf(“%d\n”, sizeof(a[3]));
 printf(“%d\n”, sizeof(b+3));
 printf(“%d\n”, sizeof(*(b+4)));
 return 0 ;
 }
     在32位系统下(如WIN32),指针长度为32位。a是一个有30个元素的字符型数组;b是一个字符串指针;

a[3]是字符型;b+3是指针;*(b+4)是字符型。 因此输出: 30、4、1、4、1

7、malloc

int* p;

p = (int *) malloc (sizeof(int)*128);//分配128个(可根据实际需要替换该数值)整型存储单元,

并将这128个连续的整型存储单元的首地址存储到指针变量p中

 

C++的类前面不能有public等修饰词

 今天就到这里,有不足的地方还请指正,谢谢大家!

你可能感兴趣的:(C++,指针,sizeof)