先引来这段代码:
char*
//这是字符指针类型(所谓类型也就是附加char的一种),只有在定义时才这样写,就像你写int
一样。
问题:什么是指针?有何作用?在c语言在存的价值及意义是什么?
答:指针在计算机硬件中是不存在这个名字,而在计算机中只有地址。还是很混,为什么要区分开地址和指针搞的人不明白呢?因为计算机处理数据时候他都是按地址找到相应位置来处理的,就像你想去北京旅游你肯定想要找到地址才能去。比如你定义一个变量int
a=99
编译器会知道是int型,分配2个字节大小来存储,在内存在的编号如是2000
当你用printf("%d",a)
这时计算机的内存寄存器通过寻址找到2000这个地址,然后读取该地址上保存的数据99。所以在内存在内存中每个数据不是乱放起的而是通过编号统一管理的。
那指针呢,他与地址有何区别?我们所说的指针是针对程序中才能说这一词。为什呢?因为指针是专用来保存地址的变量即指针变量(在c语言中所有的数据内存地址数都是2个字节大小,一信可用sizeof()测一下,如sizeof(可写任何指针变量)
都是2)
。用指针变量访问一个数据就需要间接访问,而变量则可直接仿问。注意:什么是指针,什么是指针变量?指针即地址(程序中可这样说),因为上面所说了访问一个变量就是先找到该变量的地址。而指针是用来专用保存地址的,如:int
a=99
int
*p=&a
所以你访问*p的值也就是访问a的地址或是通过p保存的址值即a的地址来访问。
注意:在定义之后的*p,p是有区别的。输出p即输出p的地址,输出*p即输出该地址中的内容即值.
指针变量就是专用存放地址的变量叫指针变量。因为计算机内存处理数据最终是物理电路是操作的,所以终归转化为地址,因为每条内存都有相应的编号,.这符合人们的思想.用指针地址处理运行程序速度快、使用灵活。
char*
//定义所有数据类型只要是指针类型都是2个字节,那么前面的char,int那些关键字有何用呢?因为类型匹配,每个数据占用的内存空间大小不一的。
*a
//*a
表示读取该a的地址的值是多少
char*p
*p=&c分别都是什么意思
//
你这段代码是错的。*p是表示读取值,而p是表示读取地址,要区分明白。&c以"&"开头的表示该变量的地址,&c表示c的地址。你将一个地址赋给一个*p即用来存值的变量显然不符合。
所以应该是
*p=c
//值与值赋
在初始定义时可写成
char
*p=4
//这也值与值的赋
p=&c
//地址与地址型赋
在初始定义时可写成
char
*p=&c
//这也行。
若还不明白本人劝你没必要追究到底,等你学到后面会越学越明白的,计算机原理,编译原理等等。
还有问题请回复^
_
^
int在c语言中的意思是整型变量,是一种数据类型。c语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。c语言能以简易的方式编译、处理低级存储器。c语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。扩展资料 C语言是一门面向过程的'计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同。
整型变量包括下面几种类型:
1、有符号基本整型,关键字:[signed] int,数值范围:-2 147 483 648 ~ 2 147 483 647,字节:4
2、无符号基本整型,关键字:unsigned ,数值范围:0 ~ 4 294 967 295,字节:4
3、有符号短整型,关键字:[signed] short ,数值范围:-32768 ~ 32767,字节:2
4、无符号短整型,关键字:unsigned long ,数值范围:0 ~ 65535,字节:2
5、有符号长整型,关键字:[signed] long ,数值范围:-2 147 483 648 ~ 2 147 483 647,字节:4
6、无符号长整型,关键字:unsigned long ,数值范围:0 ~ 4 294 967 295,字节:4
整型变量的分类
1、基本型
类型说明符为int,在内存中占4个字节(不同系统可能有差异,此处原为2,经查证windows系统下为4,VAX系统也如此) ,其取值为基本整常数。
2、短整型
类型说明符为short int或short'C110F1。所占字节和取值范围会因不同的编译系统而有差异。对于16字机,short int 占2个字节,在大多数的32位机中,short int 占4个字节。但总的来说,short int 至少16位,也就是2个字节。
3、长整型
类型说明符为long int或long ,在内存中占4个字节,其取值为长整常数。在任何的编译系统中,长整型都是占4个字节。在一般情况下,其所占的字节数和取值范围与基本型相同。
4、无符号型
类型说明符为unsigned。在编译系统中,系统会区分有符号数和无符号数,区分的根据是如何解释字节中的最高位,如果最高位被解释为数据位,则整型数据则表示为无符号数。