1. c语言中地址符究竟是什么
地址符& 就是获得一个变量/常量/函数的内存地址,没有别的含义。
scanf中,使用地址符,是因为scanf需要的是指针变量(因此指针变量不需要地址符),而普通变量需要通过地址符转译为指针使用。
charc,*p;
c='a';
p=&c;//这是地址符的“真谛”
scanf("%c",&c);
scanf("%c",p);
注意两个scanf语句都是正确的。
2. c语言中地址代表什么意思有哪些作用
在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,在前面已有详细的介绍。为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。 既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。 内存单元的指针和内存单元的内容是两个不同的概念。 可以用一个通俗的例子来说明它们之间的关系。我们到银行去存取款时, 银行工作人员将根据我们的帐号去找我们的存款单, 找到之后在存单上写入存款、取款的金额。在这里,帐号就是存单的指针, 存款数是存单的内容。对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。
图中,设有字符变量C,其内容为“K”(ASCII码为十进制数 75),C占用了011A号单元(地址用十六进数表示)。设有指针变量P,内容为011A,这种情况我们称为P指向变量C,或说P是指向变量C的指针。
严格地说,一个指针是一个地址,是一个常量。而一个指针变量却可以被赋予不同的指针值,是变量。但常把指针变量简称为指针。为了避免混淆,我们中约定:“指针”是指地址,是常量,“指针变量”是指取值为地址的变量。定义指针的目的是为了通过指针去访问内存单元。
既然指针变量的值是一个地址,那么这个地址不仅可以是变量的地址,也可以是其它数据结构的地址。在一个指针变量中存放一个数组或一个函数的首地址有何意义呢? 因为数组或函数都是连续存放的。通过访问指针变量取得了数组或函数的首地址,也就找到了该数组或函数。这样一来,凡是出现数组,函数的地方都可以用一个指针变量来表示,只要该指针变量中赋予数组或函数的首地址即可。这样做,将会使程序的概念十分清楚,程序本身也精练,高效。在C语言中,一种数据类型或数据结构往往都占有一组连续的内存单元。 用“地址”这个概念并不能很好地描述一种数据类型或数据结构,而“指针”虽然实际上也是一个地址,但它却是一个数据结构的首地址,它是“指向”一个数据结构的,因而概念更为清楚,表示更为明确。 这也是引入“指针”概念的一个重要原因。
3. C语言中变量的地址是什么类型的
变量的地址,在C语言中,一般写作指针类型。
不同类型的变量地址,用不同的指针进行保存。
比如,char 类型的地址,使用char*保存,而int型地址,用int *保存。
除此外,部分情况下也会采用整型类型来保存变量地址,具体使用何种整型类型,取决于编译器:
1 16位编译器,地址占16位,2字节,可以使用short或者int保存。
2 32位编译器,地址占32位,4字节,可以使用int或long保存。
3 64位编译器,地址占64位,8字节,可以使用long保存。
不过不推荐使用整型类型保存地址,会带来移植上的不通用。
4. C语言中取地址的符号都有哪些
&也有一些本身就是地址的,比如数组名那些
*p那是指针~~!
不同的,那个不是取地址,是取那地址里面的内容。
5. c语言中内存单元的地址是用什么进制表示的
用什么进制表示还不都一样……进制只是给人看看的,无论里写什么进制,计算机肚子里还不都是二进制……
6. C语言中数组地址的表示方法
数组变量就是它的首地址啊
7. C语言地址都是用数字表示的
地址本身就是数字,不是C语言用数字来表示。
此外,如果在源代码中,可以用自己定义的符号变量(指针)来标识某个地址,避免使用枯燥的,而且经常变化的变量地址。
十六进制相信你懂。。。
8. C语言的地址是什么类型,用%d还是%ld输出
%p 直接用16进制地址形式输出地址
%d 把地址直接用10进制形式输出地址
应该是
9. c语言指针地址的全部表示方法
朋友那本书对指针还真的没解释多少.请看下面这个例子,看了你也应该会明白了float f = 1.1; // 定义一个<float>型的变量f,f的值为1.1;float* p = &f; // 定义一个<float * >类型的变量 p,值为&f(也就是变量f的在内存中的地址). 注意:指针也是一个变量,只是指针有点特殊,因为它只存储地址,(简单的说,指针就是一个用来存放地址的变量,)如果不懂,就继续追问.这一步你必须清楚了.*p = 3.3; // 将3.3的值付给p指向的变量.(*操作符又称作为间接值(indirect value) 或者解除引用(dereferencing)操作符.)float * p2 = p; // 定义一个指针p2让p2指向变量f.(请记住p就是一个存放地址的变量,就像普通变量一样,这条语句就是将p中存放的地址赋给p2);*p2 = *p; // 先取p指向的变量(解除引用),再取p2指向的变量(解除引用),最后将p指向的变量付给p2指向的变量,(其实这里没有任何意义,因为他们都指向变量f.这条语句相当于 f = f;)float** temp = &p; //如果对&p取地址,那么就应该用一个二级指针(**)来指向它,不然就没有任何意义. (个人认为)指针的主要用途还是体现在传递大的数据类型方面(还有一点就是他可以通过地址(指针),来改变变量的值).例如,一个很大的数组,或者一个很大的结构体,int value1[1000];typedef struct { int value2; float value3; char value4[100]; ........} test test astTest[50];千万不要以为这只是特殊的时候.其实这类复合型的数据是很常见的. 当某个函数需要调用他们时,如果直接传值调用的话...int function( int value1[1000], test astTest[50] );光是将原参数的值赋给函数的参数,就会浪费很多的内存,如果一个工程全是这样的函数,那么...很难想象.而且value1 和 astTestt的值还不会因为这个函数而改变..(不信可以试试,想要改变的话,还得将数组或作为返回值传递回来.). 但是如果用指针作为参数的话..int function2( int * value, test * astTest );这样就什么问题都OK了.慢慢体会一下...
10. C语言中,地址是什么
举个例子,你在超市存放包,你存放的柜子有个编码,那个就是你存放的包的地址。同理,变量也是这样。
提供几条代码你试
int a;
scanf("%d",&a);
printf("%p",&a);
%p,查看变量地址