
这个得看你的数据是什么类型的,比如是int的,int a,那么&a就是取a的首地址,但是&a+sizeof(a)却不是a的末尾地址,因为这个时候的+不是加几个字节,而是加几个元素,因为&a指向一个int变量,故&a + sizeof(a) 实际上是 &a + sizeof(a) sizeof(int)故加了16个字节,但是你的目的只是加4个字节,故&a + 1就可以了。
你可以写程序测试一下。
就是找到这个变量的内存地址,直接读写
例如:scanf("%d",&a);
就是找到a的地址,把读入一个数写到a
的地址中
在例如
p=&a;
就是让指针p指向a的内存地址,这样直接对内存读写有利于提高 *** 作速度
变量是存放在内存中的,只要是存放在内存中的二进制数就会有一个内存的地址,所有变量是有地址的!
那函数是什么呢?函数是由一些运行的语句组成的,程序运行的时候就会把函数中的语句调用到内存中去,那么函数代码在内存中开始的那个内存空间的地址就是函数的地址!
至于函数中用的变量的地址并不是放在代码区的,一般都放在另外的两个地方,其实地址上是有很大的差值的
希望你能理解上面的内容,祝愿你学习C语言能马到成功!
#include<stdioh>
void string_cut(char s[],char c)
{int i,j;
for(i=j=0;s[i];i++)
if(s[i]!=c)s[j++]=s[i];
s[j]='\0';
}
int main()
{char s[200],ch;
gets(s);
scanf("%c",&ch);
string_cut(s,ch);
printf("%s\n",s);
return 0;
}
要知道main函数也是由其他的程序调用的。
我们编写的程序,最终是不存在所谓的函数名的,有的只有内存单元地址0xffeedd00
我们的程序执行时,程序加载到内存,比方说整个程序所占用的内存范围是0xffee0000 ~ 0xffeedd00,这么多。
假设程序有一个小函数fun(),那么它的范围可能是0xffee0000~0xffee00ff。
那么函数fun()的入口地址是多少? 0xffee0000。。
那么函数名fun实际上就是0xffee0000的别称。
你用一个指针指向这个函数,那么你把 指针 = 函数名,实际就是把0xffee0000这个内存单元的地址给指针p。
所以,结论是:
函数名 是 程序在执行时, 函数所占内存单元块的 首地址 的别称。
以上就是关于c语言的取数据的首末地址函数全部的内容,包括:c语言的取数据的首末地址函数、c语言函数参数里的取地址符号是什么意思、c语言中,什么是函数的地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)