龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

学点 C 语言(20): 数据类型 - 指针(2)

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
5. 为什么没有初始化的指针是危险的: #include int main(void) { int *p; // 上面的指针 p 没有初始化话, 但它也有个垃圾地址 printf("%pn", p); // 此时如果给它赋值, 谁

  5. 为什么没有初始化的指针是危险的:

#include 

int main(void)

{

  int *p;

  // 上面的指针 p 没有初始化话, 但它也有个垃圾地址

  printf("%pn", p);

  // 此时如果给它赋值, 谁知道会覆盖了什么?

  //*p = 100; /* 不要执行这个 */

  getchar();

  return 0;

}

  6. 指向常量的指针: 不能通过指针修改它指向的值, 但该值可以通过其变量修改

#include 

int main(void)

{

  int n1 = 111;

  int n2 = 222;

  const int *p = &n1; /* 注意 const 的使用 */

  printf("%d, %p, %dn", n1, p, *p);

  n1 = 333;

  //*p = 333; /* 不可以这样, 因为现在的指针是常量 */

  printf("%d, %p, %dn", n1, p, *p);

  p = &n2;  /* 可以改变指针的指向 */

  printf("%d, %p, %dn", n2, p, *p);

  getchar();

  return 0;

}

  7. 常量指针: 锁定指针的指向

#include 

int main(void)

{

  int n1 = 111;

  int n2 = 222;

  int *const p = &n1; /* 注意 const 的使用 */

  printf("%d, %p, %dn", n1, p, *p);

  n1 = 333;

  //*p = 333; /* 不可以这样, 因为现在的指针是常量 */

  printf("%d, %p, %dn", n1, p, *p);

精彩图集

赞助商链接