C语言-9.指针

打印 上一主题 下一主题

主题 1887|帖子 1887|积分 5661

9.1指针

9.1-1取地址运算:&运算符取得变量的地址

运算符&


  • scanf(“%d”,&i);里的&
  • 获取变量的地址,它们操纵数必须是变量
  • int i;printf(“%x”,&i);
  • 地址的大小是否与int雷同取决于编译器
  • int i;printf(“%p”,&i);
    &不能取的地址
  • 不能对没有地址的东西取地址
  • &(a+b) &(a++) &(++a)这些都不能取地址
    试试这些&
  • 变量的地址
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    
  5.     int a=1;
  6.     printf("0x%p",&a);
  7.     return 0;
  8. }
复制代码



  • 相邻变量的地址
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    
  5.     int a=1;
  6.     int b=2;
  7.     printf("0x%p\n",&a);
  8.     printf("0x%p\n",&b);
  9.     return 0;
  10. }
复制代码



  • &的结果的sizeof
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    
  5.     int a=1;
  6.     int b=2;
  7.     printf("0x%p\n",&a);
  8.     printf("0x%p\n",&b);
  9.     printf("%lu\n",sizeof((&a)));
  10.     return 0;
  11. }
复制代码



  • 数组的地址
  • 数组单元的地址
  • 相邻的数组单元的地址
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    
  5.     int a[10];
  6.     printf("%p\n",a);
  7.     printf("%p\n",&a);
  8.     printf("%p\n",&a[0]);
  9.     printf("%p\n",&a[1]);
  10. }
复制代码

&数组名,数组名,数组名[0],都表示数组的首地址。
9.1.2指针:指针变量就是记录地址的变量

scanf


  • 如果能够将取得的变量的地址通报给一个函数,能否通过这个地址在谁人函数内访问这个变量
  • scanf(“%d”,&i);
  • scanf()的原型应该是怎样的?我们需要一个参数能保存别的变量的地址,怎样表达能够保存地址的变量?
    指针
    就是保存地址的变量
    int i;
    int* p = &i;
    int* p,q;
    int p,q;
    这里边的 号只是表示p是存储地址的变量,不是代表int这种范例,也没有int
    这种范例。
    int *p=&a,应为int *p中p是要储存一个地址,以是给int *p赋值时必须是一个变量的地址
    int *p,q这里边只有p是存储地址的变量,而q还是一个int型的变量。
    指针变量
  • 变量的值是内存的地址
  • 平凡变量的值是现实的值
  • 指针变量的值是具有现实意义的变量的地址
    作为参数的变量
  • void f(int *p);
  • 在被调用的时候得到了某个变量的地址;
  • int i = 0;f(&i);
  • 在函数里面可以通过这个指针访问外貌的这个i

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

嚴華

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表