是相同的。
str是一个结构体的变量。类型为struct ss。而a[4]是这个结构体的每一个成员,str的地址值与int a[4]的地址值一样,但仅仅是地址值是一样的,而地址是有类型的,两者类型不一样,str的地址类型为sturct ss ,而成员a[4]的地址类型为int 。
取地址符&作为一元运算符,结果是右 *** 作对象的地址。例如&x返回x的地址。地址本身是一个抽象的概念,用于表示对象在存储器中的逻辑位置。scanf("%d,%d",&x,&y);这里的&x表示x的地址,&y表示y的地址。scanf接收地址,然后把键盘(更确切地说是stdin输入流缓冲区)读入的信息按格式字符串的形式处理后存放到接收到的地址中。对于纯C来说,函数的参数是只能值参而不是变参,函数内部对参数的改变只影响参数本身而不影响调用函数时的实际参数(换句话说函数内部的只是副本)。所以这里不能向scanf传递x本身,需要用地址&x指明需要存放的位置,才能把值存到x中。
输出中使用&,例如printf("%X",&a); 作用就是把变量a的物理地址用16进制的方式输出。
取变量地址,直接&变量名
一维数组和二维数组的首地址 就是数组名
函数地址 就是函数名
结构体变量地址 和普通变量地址一样 &变量名
结构体数组地址,和普通数组一样,就是数组名
字符串地址,就是字符串变量的名字。
以上就是关于c语言结构体变量的地址是啥呢全部的内容,包括:c语言结构体变量的地址是啥呢、结构体数组成员的地址如何表示、怎么取变量,一维数组,二维数组,函数,结构体,字符串的地址给指针变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)