qidao123.com技术社区-IT企服评测·应用市场
标题:
C语言-9.指针
[打印本页]
作者:
嚴華
时间:
4 天前
标题:
C语言-9.指针
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;
}
复制代码
&的结果的sizeof
#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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/)
Powered by Discuz! X3.4