零散

零散

  • 说明一种新的类型名 typedef int v3;

  • x+=x-=x*x;
    
    先算x-=x*x,再算x+=x;
    
  • int *f( );中,标识符f代表的是一个返回值为指针型的函数名

  • char (*p)[16],p是指向长度为16的字符数组的指针

  • 假设已经有定义“ const char*name=" chen " ;”,下面的语句中错误的是(A)? 
    A:name[3]='q';
    B:name="lin";
    C:name=new char[3];
    D:name=new char('q');
    name被定义指向常量的指针,所以它所指的内容不能改变,但指针本身的内容可以修改
    
  •  B(int x,int y){a=x--;b=x*y--;}。则执行B(3,5);得3,10
    
      1、x先赋值给a再执行--操作 所以执行完 a=x-- 之后 a=3 x=2; 
    
      2、-- 向右结合第一个变量y,但是此时先算x*y后y再执行 -- 操作,所以执行完 b=x*y-- 之后 b=10 y=4。 
    
  • main函数可以调用自己(用户可以调用main函数)

  • fseek(fp,位移量,起始点)

  • 虽然静态成员不属于类的某个对象,但是我们仍然可以使用类的对象、引用或者指针来访问静态成员
    成员函数不用通过作用域运算符就能直接使用静态成员
    静态数据成员不是由类的构造函数初始化的
    静态成员可以作为默认实参,非静态成员不能,原理this指针
    
  • C语言数组溢出不会报错

  • 右值(=右边)不能被赋值

  • 在64位操作系统上,下面程序返回什么结果:2400
     int main() {
     int *k[10][30];
     printf(""%d\n"", sizeof(k));
     return 0;
     }
    
      1、int *k[10][30];表示的是指针数组,一共有10*30=300个元素 
    
      2、在64位系统下,每个指针的长度是8字节,因此总长度为2400字节 
    
  • 字符处理函数strcpy()、strcat()都是不安全的,建议使用strncpy()、strncat(),程序没有对输入合法性进行检查,因此用户可以采用一定手段构造command injection 进行攻击。

  • 字符常量可以参与任何整数运算

  • char * p= new char[100]
    p在栈上 new出来的在堆上
    动态分配在堆中,其它的内存分配都在栈上进行。
    
  • 1.内联函数在运行时可调试,而宏定义不可以;
    2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会; 
    3.内联函数可以访问类的成员变量,宏定义则不能;  4.在类中声明同时定义的成员函数,自动转化为内联函数。
    
  • 空指针可以确保不指向任何对象或函数; 而未初始化指针则可能指向任何地方。

  • 友元只能通过某具体对象访问所有的数据成员

  • 不可重载运算符包括?: :: . .*这四个

  • 在派生类中重写一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值相同

  • 指针函数是指函数的返回值为指针的函数

  • 自动变量(auto)和寄存器变量(register)属于动态存储,调用时临时分配单元

  • +优先级高于&(按位与)

  • const char *str = “123456”; sizeof(str)的结果为4(指针类型)

  •   执行以下代码 
    
      #define SUM(x,y) x+y 
    
      int a=3; 
    
      int b=2; 
    
      a+=a*SUM(a,b)*b; 
    
      a的值为 16
    
      宏函数SUM只在预编译阶段做预处理工作,即只是简单地进行字符替换而已。 
    
      a += a*SUM(a,b)*b 
    
      a+= a*a+b*b 
    
  • 枚举赋值问题,从上一个定义开始逐个低增

  • 在函数中定义的变量,其存储单元在内存的栈区

  • 有哪几种情况只能用intialization list 而不能用assignment?ABC
    当类中含有const成员变量
    基类无默认构造函数时,有参的构造函数都需要初始化。
    当类中含有reference成员变量
    当类中含有static成员变量
    
    
  • 在C++中,来自class的继承默认按照private继承处理,来自struct的继承默认按照public继承处理
    class的成员默认是private权限,struct默认是public权限
    c里面的struct只是变量的聚合体,struct不能有函数
    c++的struct可有构造和析构函数
    
    
  • j=i+++1,表达式等价于j=(i++)+1

  • 在这里插入图片描述

    XB::XB(int a,int b):XA(a),y(b){ }

  • 在二维数组int a【2】【4】={{2,4,5,7},{3,6,1,8}}中,*(&a【0】【0】+4)的值是3

  • 若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是(  D )。 
    p+1
    *(p+3)
    *(p+1)+3
    *(p[0]+2)
    
    数组指针(也称行指针)
    定义 int (*p)[n];
    ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。
    如要将二维数组赋给一指针,应这样赋值:
    int c[4][5];
    int (*p)[5]; //该语句是定义一个数组指针,指向含5个元素的一维数组。
     p=c;        //将该二维数组的首地址赋给p,也就是c[0]或&c[0][0]
     p++;       //该语句执行过后,也就是p=p+1;p跨过行c[0][]指向了行c[1][]
    *(p[0]+2);//等价于*(*(p+0)+2),表示a[0][2];
    
    1.&a[i][j]        数组元素a[i][j]的地址
    2.&a[i]           数组元素a[i][0]的地址
    3.a[0]+j         数组元素a[0][j]的地址
    4.*(*(a+i)+j)   数组元素a[i][j]的地址
    5.*(a[i]+j)       数组元素a[i][j]的地址
    
    
  • 预定义的标识符不是C语言关键字

  •   BSS段:通常是指用来存放程序中未初始化的全局变量的一块内存区域; 
    
      数据段:通常是指用来存放程序中已初始化的全局变量的一块内存区域,static意味着在数据段中存放变量; 
    
      代码段:通常是指用来存放 程序执行代码 的一块内存区域; 
    
      堆:存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减,这一块在程序运行前就已经确定了; 
    
      栈:栈又称堆栈, 存放程序的 局部变量 (不包括static声明的变量)。除此以外,在函数被调用时,栈用来传递参数和返回值。 
    
    
  • feof函数的用法是从输入流读取数据,如果到达稳健末尾(遇文件结束符),eof函数值为非零值,否则为0

  •   当const在*的左边,不能改变指针的对象的值 = 指针所指向的内存,也就是说不能修改我们要找的人,  
    
       当const在*的右边,不能改变指针的地址,也就是说不能修改我们要找的地址。  
    
    
  • 在x86的机器上,int a=0xabcd1234 char b=((char*)&a)[0]请问b是多少?0x34
    
      x86是小端存储,即高位存储在高地址,低位存储在低地址。 
    
      int a = 0xabcd1234; 
    
      内存中 ab  cd  12   34,b作为一个char,右边表达式指针指向为0x34. 
    
    
  • 当free释放内存之后,指针还指向原来的那块地址,需要我们设置 p= NULL

  • 32位系统下任何类型指针的长度都是4个字节

  • #include命令的功能是在命令处插入一个文本文件

  • struct 的成员默认是公有的
    类的成员默认是私有的
    
    
  • byte ,值域-128至127

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值