在c语言中表示取某变量地址的运算符,指针地址与取值运算符 - C 语言程序设计...

///01.地址.c

#include

#include

int get()

{

return 10;

}

//01.严格进行变量区分:

// 1.普通变量和指针变量

// 2.严格的变量类型:

// 常规类型+特殊类型

//02.对变量取地址的操作发起于寄存器当中

// 因此地址也生成于寄存器变量当中,C语言无法直接访问

//03.关于取地址符不能操作的两种情况:

// &&intNum;-->C语言无法直接操作寄存器变量

// &get();-->返回值存储与寄存器的(cache)区,或者程序的(备份内存),这两块儿内存都不可直接访问

int main01(void)

{

int intNum;

&intNum;//这里获取一个声明但没有初始化的普通变量的所属地址可以,但是如果是指针类型的变量就不行了

//&&intNum;//&intNum这个表达式所代表操作执行于寄存器当中,在寄存器当中使用寄存器变量进行存储,因此C语言无法进行寄存器变量的操作

// 而且&intNum所获得的数据来自于CPU-->寄存器-->代码区-->符号表中,因此不能通过取地址运算符进行操作(C语言相对于汇编语言的缺点)

//&get();//get();的返回值,也就是函数的返回值可能存储于两个常见位置:寄存器的缓冲区(cache),应用程序的备份内存,因此返回值不可取地址

system("pause");

}

///02.内容.c

#include

#include

//01.取值运算符("*")与取地址运算符("&"):

// 1.星号("*")表示取值运算符,也就是根据指针访问内存块儿

// 2.与号("&")表示取地址运算符,也就是根据变量的内存实体获取变量的地址

//02.对指针变量使用取值运算符(星号:"*")的使用规律:

// 用原始指针类型的指针级别减去取地址运算符的个数;

// 就是当前所访问的具体变量(普通变量和指针变量)

// 结果为0-->普通变量

// 结果为1-->一级指针变量

// 结果为2-->二级指针变量

// 结果为n-->N级指针变量

int main02(void)

{

//*(001) = 1;//由于常量读取于代码区符号表,产生于CPU寄存器,因此C语言不能够直接进行访问

int intVar = 10;

*(&intVar) = 3;//星号(*)表示取值运算符,也就是根据指针访问内存区块儿

printf("%d \n", intVar);

system("pause");

}

//03.取值运算符(星号:"*")的操作对象实质必须是指针

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值