c语言中(int)什么意思
4个回答
展开全部
看了你的追问这么多我知道他们回答的不是楼主想要的。
先引来这段代码:
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;
//这也行。
若还不明白本人劝你没必要追究到底,等你学到后面会越学越明白的,计算机原理,编译原理等等。
还有问题请回复^
_
^
先引来这段代码:
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)后面一般要接一个东西,(int)就是把后面的这个东西转换成int类型的变量
比如(int)3.14把3.14转换成int,结果为3
比如(int)'c'把字符转换成int,结果为99
比如(int)狗
把狗转换成int,结果为未知
比如(int)3.14把3.14转换成int,结果为3
比如(int)'c'把字符转换成int,结果为99
比如(int)狗
把狗转换成int,结果为未知
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
强制类型转换
比如
#include
"stdio.h"
int
main()
{
float
a=1.2;
int
b=(int)a;
//把float类型的变量a的值强制转换成int类型后的值赋给b,所以b的值就是1
printf("b=%d,a=%f\n",b,a);
}
比如
#include
"stdio.h"
int
main()
{
float
a=1.2;
int
b=(int)a;
//把float类型的变量a的值强制转换成int类型后的值赋给b,所以b的值就是1
printf("b=%d,a=%f\n",b,a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询