同样的道理,int *pa;语句是用来定义指针变量pa,在随后的代码中,只要写下pa就表示要操作变量pa中的值: printf("pa = %d \n", pa);这个语句就是要读取指针变量pa中的值,当然是0x11223344;pa = &a;这个语句就是要把新的值写入到指针变量pa中。再次强调一下,指针变量中存储的是地址,如果我们可以提前知道变...
*:这个操作符用在2个场景中:定义一个指针的时候,获取一个指针所指向的变量值的时候。 1. intpa; 这个语句中的表示定义的变量pa是一个指针,前面的int表示pa这个指针指向的是一个int类型的变量。不过此时我们没有给pa进行赋值,也就是说此刻pa对应的存储单元中的4个字节里的值是没有初始化的,可能是0x00000000,...
因此在执行语句时,首先知道pa是一个指针,其中存储了一个地址(0x11223344),然后通过操作符*来获取这个地址(0x11223344)对应的那个存储空间中的值;又因为在定义pa时,已经指定了它指向的值是一个int型,所以我们就知道了地址0x11223344中存储的就是一个int类型的数据。
指针变量所指向的数据类型是在定义的时候就明确的,也就是说指针pa指向的数据类型就是int型,因此在执行printf("value = %d \n", *pa);语句时,首先知道pa是一个指针,其中存储了一个地址(0x11223344),然后通过操作符*来获取这个地址(0x11223344)对应的那个存储空间中的值;又因为在定义pa时,已经指定了它指向的值...
二、变量与指针的本质1. 内存地址 我们编写一个程序源文件之后,编译得到的二进制可执行文件存放在电脑的硬盘上,此时它是一个静态的文件,一般称之为程序。 当这个程序被启动的时候,操作系统将会做下面几件事情: 把程序的内容(代码段、数据段)从硬盘复制到内存中; ...
二、变量与指针的本质 1. 内存地址 我们编写一个程序源文件之后,编译得到的二进制可执行文件存放在电脑的硬盘上,此时它是一个静态的文件,一般称之为程序。 当这个程序被启动的时候,操作系统将会做下面几件事情: 把程序的内容(代码段、数据段)从硬盘复制到内存中; ...
6. 函数指针 五、总结 一、前言 如果问C语言中最重要、威力最大的概念是什么,答案必将是指针!威力大,意味着使用方便、高效,同时也意味着语法复杂、容易出错。指针用的好,可以极大的提高代码执行效率、节约系统资源;如果用的不好,程序中将会充满陷阱、漏洞。
二、变量与指针的本质 1. 内存地址 我们编写一个程序源文件之后,编译得到的二进制可执行文件存放在电脑的硬盘上,此时它是一个静态的文件,一般称之为程序。 当这个程序被启动的时候,操作系统将会做下面几件事情: 把程序的内容(代码段、数据段)从硬盘复制到内存中; ...
6. 函数指针 五、总结 一、前言 如果问C语言中最重要、威力最大的概念是什么,答案必将是指针!威力大,意味着使用方便、高效,同时也意味着语法复杂、容易出错。指针用的好,可以极大的提高代码执行效率、节约系统资源;如果用的不好,程序中将会充满陷阱、漏洞。
二、变量与指针的本质 1. 内存地址 我们编写一个程序源文件之后,编译得到的二进制可执行文件存放在电脑的硬盘上,此时它是一个静态的文件,一般称之为程序。 当这个程序被启动的时候,操作系统将会做下面几件事情: 把程序的内容(代码段、数据段)从硬盘复制到内存中; ...