给你一个完整的实例
1)新建一个“控制台应用程序”项目,项目名称保持默认的ConsoleApplication1
2)在解决方案资源管理种,选中 解决方案"ConsoleApplicaiton1", 点鼠标右键,调出右键菜单:添加 -->新建项目
3)在“添加新项目”对话框中选择“类库”,保持项目名称为默认的ClassLibrary1
4)打开项目ClassLibrary1中的Class1.cs文件
输入以下代码
using Systemusing System.Collections.Generic
using System.Linq
using System.Text
using System.Threading.Tasks
namespace ClassLibrary1
{
public class Class1
{
private string message
public string Message
{
get
{ return message }
set
{
message = value
}
}
public void ShowMessage()
{
Console.WriteLine(message)
}
}
}
5)在项目ConsolApplication1中,选中“引用”,鼠标右键调出菜单,然后点“添加引用”
6)在“引用管理器”中
7)添加完后,项目ConsoleApplication的引用中会看到引入的类库
8)打开项目ConsoleApplication1中Program.cs,输入以下代码
using Systemusing System.Collections.Generic
using System.Linq
using System.Text
using System.Threading.Tasks
//ClassLibrary1的名称空间
using ClassLibrary1
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// 实例化ClassLibrary1中的Class1
Class1 c1 = new Class1()
c1.Message = "测试"
c1.ShowMessage()
// 按回车键退出
Console.ReadLine()
}
}
}
9)运行
你首先要明白,指针运算符的作用,我用一言以概之,你在哪里使用都不会错。指针运算符*的作用是求出*后面所指地址里的值。因此只要*后面的变量表示的是一个地址就可以使用*运算符,来求出这个地址中的值,你不用管这个地址的表示形式是怎样的,只要是地址就可以使用*来求出地址中的值。因此i=*&p; 错误,因为p是指针,那么&p表示的是指针p的地址,那么*&p表示的就是指针p的地址中的值,也就是p了,这个值也是个地址,变量i要求的是一个整型值,因此错误。这里要注意,指针p同样有地址,而且也有值,指针p的值就是p,但这个值是另一个变量的地址。
q=**&p 错误,*&p的解释同上,而**&p就是求指求p所指负的地址的值,也就是*p的意思,而q要求是一个地址,因此错误。
i=&*p错误,*p表示p所指地址处的值,&*p表示对p所指向的值再求地址,因此是错误的,因为i要求是一个整数,而不是一个地址。
p=&*&i 正确,因为*&i就等于i的值,而&i表示的就是i的地址,因此正确。
q=*&*p 错误,简单的判断方法就是最左边的运算符为*运算符,这个运算符的结果是一个值而不是地址,因此肯定错误。具体一点就是*p指的是p所指地址处的值,而&*p也就等同于p了。
i=*&*p 正确,原理同上面的解释
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)