⑴ c语言地址相加
首先要清楚指针型变量中存放的是变量地址。
程序中已定义pa是一个整型数(int)指针变量,pb是一个双精度浮点数(double)指针变量,pc是字符型(char)指针变量。因int型数据占用2个字节内存单元,指针变量pa增1,指针pa中的地址+2; 而double型变量占用8个字节内存单元,指针变量pb增1,则pb中的地址值+8; 同理char型变量占用一个字节内存单元,指针变量pc增1,pc中的地址值+1。
⑵ c语言指针地址加1是多少位
int 型指针+1:地址+4
short型指针+1:地址+2
char型指针+1:地址+1
综上:X型指针+N:地址+N*sizeof(X)
⑶ C语言里字符地址加一和数字地址加一有什么不同
字符地址加1 , 实际移动的是sizeof(char), 也就是地址实际值加一.
数字地址加1, 根据数字对应变量类型不同, 实际移动的是sizeof(type). 比如
short a;
&a+1移动的就是sizeof(short)=2
⑷ C语言地址运算问题
地址+整数,这里的整数代表的是向后移动的单位数,二维数组的各个地址是这样的:比如定义了一个数组a[][],a能够为数组的一行代言,a+1就向后走一行变成a[1]了,也就是a[1][0]的地址,a[i]是以单个的元素为单位进行管理的,那么a[i]+1就是以a[i][0]为起始点向后走一个元素所占的字节数,即a[i][1]的地址。如果用&取址的话,&后边跟的是多大单位就向后移动多大单位,也就是说像&a[0][0]+1就向后移动一个元素所占字节数,&a[i]+1向后走一行元素所占的字节数,&a+1向后走一整个数组所占的字节数
⑸ c语言 怎么计算地址 和值 解读一下这个程序好嘛
其实也可以吧a[3][4]这个二维数组看成3个一维数组:
a[3][4]={a[0],a[1],a[2]}
a[0]={0,1,2,3}
a[1]={4,5,6,7}
a[2]={8,9,10,11}
在这道题里标示符a代表a[0][0]的地址,标示符a[0]代表a[0][0]的地址,标示符a[1]代表a[1][0]的地址,标示符a[2]代表a[2][0]的地址 ->【解释】例如定义一个一维整型数组 int b[10]; 那么标示符b就能代表b[0](该数组的第一个元素)的地址,可以作为地址常量使用,类似指针。
printf("%d",a):题中a应该为a[0]的地址值,而a[0]为a[0][0]的地址值,所以a为a[0][0]的地址值。
printf("%d",*a):&为取地址符号,*为间接访问符号,主要用于指针,比如int m,*q;q=&m; *q就可以代表m了,*q的值就是m的值。题中*a为a[0]的值,可惜a[0]不是个数,a[0]代表a[0][0]的地址值,所以*a为a[0][0]的地址值。【但*a[0]代表a[0][0]的值,两者不要混淆】
printf("%d",a+1):指针可以和整数进行加减运算,运算结果仍是指针类型。比如定义一个一位数组 int b[10],*q;q=&b[4]; 那么q代表b[4]的地址值,q+1代表b[5]的地址值,q+2代表b[6]的地址值。题中a+1代表a[1][0]的地址值(注意不是a[0][1])。
printf("%d",*(a+1)):之前说了,a+1代表a[1][0]的地址值,所以*(a+1)可以代表a[1][0],*(a+1)的值就是a[1][0]的值。
关于&就不多说了吧。。。打字好累。。。
⑹ C语言怎么进行加法计算
#include"stdio.h"
voidmain()
{
inta,b,c;
scanf("%d%d",&a,&b);
c=a+b;
printf("%d ",c);
getch();
}
⑺ C语言的两个数相加怎么写
int a,b,c;
scanf("%d%d",&a,&b); //输入a,b
c=a+b; //两数相加给c
printf("%d",c); //输出c
⑻ C语言中地址可以用作加运算吗
地址属于指针常量,指针可以和int型相加,但不可以和其他指针型相加。
例如,有int i, *p1, *p2; p1+i是合法的,p1+p2则不合法。
⑼ C语言中地址+1实际上加了多少
指针自增每次增加的增加量=sizof(你所有用的数据类型)
比如
char型指针 自增的话地址加1
int型 一般都是4字节,所以自增会加4.
⑽ C语言里地址的问题
可以理解成内存就是一个大宾馆,里面的房间都有门牌号,这个门牌号就是地址的值,房间就是一个空间(空间多大呢?比如int的可以用sizeof(int)来算)。
这个地址是有值得,用十六进制来表示&x(hex)。或者%p打印地址。
数组的(首)地址就是数组名,比如ints[10],s就是地址。
指针,p是指针本身,*p才是指针这个空间(房间中,p有自己的房间号,*p是p的房间里面存的一个房间号)中的存储的地址。
但是真正用的时候,一般不用地址做运算,都是用地址里面的数据。gets(s)也是对这个地址的连续空间里面进行数据的输入。
具体地址怎么表现的呢,给你做了一张图: