9.1指针
9.1-1取地址运算:&运算符取得变量的地址
运算符&
- scanf(“%d”,&i);里的&
- 获取变量的地址,它们操纵数必须是变量
- int i;printf(“%x”,&i);
- 地址的大小是否与int雷同取决于编译器
- int i;printf(“%p”,&i);
&不能取的地址
- 不能对没有地址的东西取地址
- &(a+b) &(a++) &(++a)这些都不能取地址
试试这些&
- 变量的地址
- #include <stdio.h>
- int main()
- {
-
- int a=1;
- printf("0x%p",&a);
- return 0;
- }
复制代码
- #include <stdio.h>
- int main()
- {
-
- int a=1;
- int b=2;
- printf("0x%p\n",&a);
- printf("0x%p\n",&b);
- return 0;
- }
复制代码
- #include <stdio.h>
- int main()
- {
-
- int a=1;
- int b=2;
- printf("0x%p\n",&a);
- printf("0x%p\n",&b);
- printf("%lu\n",sizeof((&a)));
- return 0;
- }
复制代码
- #include <stdio.h>
- int main()
- {
-
- int a[10];
- printf("%p\n",a);
- printf("%p\n",&a);
- printf("%p\n",&a[0]);
- printf("%p\n",&a[1]);
- }
复制代码
&数组名,数组名,数组名[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企服之家,中国第一个企服评测及商务社交产业平台。 |