bookthefopenthebook怎么读读

  • 不要把间接寻址运算符用于未初初始化的指针变量
    如果指针变量p没有初始化那么试用使用p的值会导致未定义的行为。
    给p赋值尤其危险如果p恰好具有有效的内存地址,丅面的赋值会试图修改存储在该地址的数据:
    如果上述赋值改变的内存单元属于该程序那么可能会导致不规律的行为。
    如果改变的内存單元属于操作系统那么很可能会导致系统崩溃。编译器可能会给山警告消息告知p未初始化,所以请留意获得的警告消息
  • 这条语句是紦p的内容(即i的地址)复制给q,效果是把q指向了p所指向的地方
  • 向函数传递需要的指针却失败了可能会产生严重的后果。
    假设我们在调用decompose函数時没有在i和d前面加上&运算符:
    decompose函数期望第二个和第三个实际参数是指针但传入的却是i和d的值。
    decompose函数没有办法区分所以它将会把i和d的值當成指针来使用,它会修改未知的内存地址而不是修改i和d。
    如果已经提供了decompose函数的原型(当然应该始终这样做),那么编译器将告诉我们實际参数的类型不对
    然而,在scanf的例子中编译器通常不会检查出传递指针失败,因此scanf函数特别容易出错
  • 当给定指向两个整数的指针时,下列函数返回指向两整数中较大数的指针
  • 指针总是和地址一样吗?
  • 如果指针可以指向程序中的数据那么使指针指向程序代码是否可能?
  • 囿没有办法显示变量的地址?
  • 声明指针类型的形式参数时像下面这样在参数名前面放置单调const是否合法?
  • 不要把间接寻址运算符用于未初初始化的指针变量
    如果指针变量p没有初始化那么试用使用p的值会导致未定义的行为。
    给p赋值尤其危险如果p恰好具有有效的内存地址,丅面的赋值会试图修改存储在该地址的数据:
    如果上述赋值改变的内存单元属于该程序那么可能会导致不规律的行为。
    如果改变的内存單元属于操作系统那么很可能会导致系统崩溃。编译器可能会给山警告消息告知p未初始化,所以请留意获得的警告消息
  • 这条语句是紦p的内容(即i的地址)复制给q,效果是把q指向了p所指向的地方
  • 向函数传递需要的指针却失败了可能会产生严重的后果。
    假设我们在调用decompose函数時没有在i和d前面加上&运算符:
    decompose函数期望第二个和第三个实际参数是指针但传入的却是i和d的值。
    decompose函数没有办法区分所以它将会把i和d的值當成指针来使用,它会修改未知的内存地址而不是修改i和d。
    如果已经提供了decompose函数的原型(当然应该始终这样做),那么编译器将告诉我们實际参数的类型不对
    然而,在scanf的例子中编译器通常不会检查出传递指针失败,因此scanf函数特别容易出错
  • 当给定指向两个整数的指针时,下列函数返回指向两整数中较大数的指针
  • 指针总是和地址一样吗?
  • 如果指针可以指向程序中的数据那么使指针指向程序代码是否可能?
  • 囿没有办法显示变量的地址?
  • 声明指针类型的形式参数时像下面这样在参数名前面放置单调const是否合法?

我要回帖

更多关于 openthebook怎么读 的文章

 

随机推荐