① c语言的数组元素地址计算
要看数组的类型
比如int型,以一个int型数据4个字节,仿轿内存的起始地址为1000来说
int a[5]的内存中庆地址:
a[0] 1000
a[1] 1004
a[2] 1008
a[3] 1012
a[4] 1016
int a[2][3]的内存地址:
a[0][0] 1000
a[0][1] 1004
a[0][2] 1008
a[1][0] 1012
a[1][1] 1016
a[1][2] 1020
int a[2][2][3]
a[0][0][0] 1000
a[0][0][1] 1004
a[0][0][2] 1008
a[0][1][0] 1012
a[0][1][1] 1016
a[0][1][2] 1020
a[1][0][0] 1024
a[1][0][1] 1028
a[1][0][2] 1032
a[1][1][0] 1036
a[1][1][1] 1040
a[1][1][2] 1044
找找规卖大握律就懂了
② C语言关于取值和取址
1、首先打开Visual C++,点击左上角“文件”菜单按钮,并点击“新建”按钮。在弹出的窗口中首先选择“文件”选项卡,在左侧列表中选取“C++ Source File”项。
③ C语言-指针与取地址符问题
scanf及fscanf、sscanf等函数的原理是将数据读入到以某个内存地址为起始的长度为格式控制字符串给定的数据类型长度对应的连续内存空间内。例如scanf("%d",0x401040)代表从输入流中读取一个整型数,并将它保存到内存地址0x401040开始的相当于int型长度的内存空间内(x86上为4个字节)。因此,对于整型变量a来说,应该用scanf("%d",&a)代表将数据读入并保存到a对应的地址空间内。这是&stu[i].grade前面为什么需要取地址符&的原因。而对于char id[10]来说,id是一个char型数组名同时也是指向该数组首元的指针名,即id是一个char*型指针。而我们都知道指针本身保存的就是内存地址的值,因此直接用scanf("%s",id)就可以将一串字符读入id所指向的内存空间内。注意前面的格式控制符%s代表一个不含空白符号的字符串。
④ C语言有关取地址
因为你输入m和n的语句有错误。。。
scanf("%d,%d",&m,&n);这里第一个逗号要去掉拿局行。。。或者你输入的时候输入m后输入逗号,再输入n
上面的如果你做的是正确的,那么看这个程序
如果将s=s+1改成s=m+1,那消哗么while循环体内每次执腊宏行s=m+1之后,s的值都是固定的,也就是如果m=10,那么s=m+1之后,s=11,每次循环s都是11,这样这个循环就是死循环。。。
⑤ C语言中取地址运算解释
// 定义int普通变量d,int指针变量e,f
int d,*e,*f;
// 指针e指向d的地址,即,e保存的是d的地址,而不是一个普通变量
e=&d;
// 获取终端输入的一个整数,赋值给d(即,将终端获取的整数值写入scanf后面跟的地址中
scanf("%d",&d);
// 指针f也跟e一样,保存d的地址
f=e;
以上,*e,*f,d实际上都是d
e,f,&d实际上都是d的地址
⑥ C语言中 取内容与取地址运算符的问题
我明白你什么意思,指针的概念确实不好理解!
1,先给你说下指针,你把指针理解了运算符的抵消就明白一半了!
指针里面是保存的内存地址(就像int变量里面保存的是整型变量一个意思)。
整型变量保存在内存里面,我可以通过这个变量名称来调用这个数据,也可以通过指针里面这个变量的地址加上*(间接访问运算符),来调用这个数据。
2,再说下运算符*和&
*是间接访问运算符:就是可以通过地址,找到这个地址里面的变量,所以
*p1
就等同于变量a
&是求地址运算符:就是将变量所在的内存地址,提取出来
这两个运算符的运算等级是相同的,也就是说谁距离变量近,就谁先。所以*&a和*(&a)是一样的,都是先取地址,在对地址进行间接访问。但是一定要注意*与&的顺序,&*a是无效的。
3,再说下题
*运算符就是对地址进行操作的,那么
*地址
的意思就是访问地址里面的数据,而&a就是取变量a的地址,所以*&a:
先取变量a的地址
再
对地址进行间接访问,两个操作就相互抵消了,最后还是变量a。
4,还有什么不明白的么?
⑦ 越搞越糊涂 请教: C语言中, 已知变量x的值是另一个未知的地址, 现要取这个未知变量的值.
呵呵,如果你是初学的,那你对地址这种东西想太多了啦。没必要这样子想的。
在计算机中,地址跟生活中的地址差不多,也就是一个数字而已。
你说的这个问题,已经是多级指针的问题了的呢。每个变量x自身都是一个值,这个值x就存放在&x上面。
你要记住这个:“*地址” 这个是获取到 “值” 的携坦 ,“&变量” 是获取到 “变量的地址” 的。
你棚隐锋的问题是:C语言中, 已知变量x的值是另一个未知的地址, 现要取这个未知变量的值。
则:*x 就是未知地址上的值了。
理论上就是这么简单了……
但你链晌所补充的:如果x=0x168, 在地址0x168中有一个值0x258, 如何从x获得0x258.&x是x的地址, *&x取的是x的值.....
则:x 的值是地址,那意味着x的值就是地址了啦,于是 *x 就是等于 0x258 ,
因为 0x258也是个地址,所以你要取值的话,就是 **x,于是这样子就可以是到0x258这个地址上的值了……
**x 可以写成 *(*x),而 *x 不就是等于0x258 么……
⑧ 用C语言去取一个给定地址里的值
没看太懂您的问题,裂闭做不过取地址内的值,一般用同类型指针的解引用,如p是一个有效指针,*p即肆衡为p指向态猛地址的值。
⑨ c语言 已知地址 取值
楼主你好
两种方弯哪式:
(1)使用孙基c语言取地址符&
&address[0]就是对应的存储地址
(2)数组名是首地址
那么address对应的就是address[0]的地址
希望则闹谨能帮助你哈