问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么不同类型的指针不能相互赋值

发布网友 发布时间:2023-03-25 02:40

我来回答

3个回答

热心网友 时间:2023-10-18 06:04

可以赋值,只不过运行时可能出错,比如
#include <stdio.h>
struct test{
int a;
int b;
char c;
};
void main(void)
{
int a;
struct test *q;

a = 65535;
q = &a;

printf("%d\n", *q);
}
上边的程序,在编译时会出现指类不兼容的警告,但是程序可以运行,结果是65535,这是printf自身的原因。你要做的就是避免因为指类不同而引起的段错误(非法内存访问)。

热心网友 时间:2023-10-18 06:05

指针类型不同,在为其分配内存空间时大小也不同,这时如果要进行计算得出来的结果是毫无意义的。

热心网友 时间:2023-10-18 06:05

因为指针的类型不同,代表指针的运算方式也不一样,所以运算后所指向的地址不一样。
为什么不同类型的指针不能相互赋值

上边的程序,在编译时会出现指类不兼容的警告,但是程序可以运行,结果是65535,这是printf自身的原因。你要做的就是避免因为指类不同而引起的段错误(非法内存访问)。

c语言char和int可以互相赋值,但指针不能赋值,char *和int *不能直接...

而int 则是两个字节16个二进制位 由于指针所指向的是变量的起始地址 那么在当指针指向一段连续内存时 它找到每个变量是通过对起始地址运算得到的下一个元素的起始地址 然后根据长度 取出里面的内容 输出我们想要的格式 所以不同的类型长度不同 相互赋值 必定无法得到想要的结果 ...

在51单片机中,不同类型的数之间能相互赋值吗?它们的指针呢,能相互交换...

不同类型之间是不能直接赋值的,要经过类型的强制转换:int型占4个字节,char型占1个字节,小的给大的类型一般的编译器是可以通过的,但大的给小的你就要指明了 举个例子:int a=2;char b=5;a = b; /*这种操作一般是允许的*/ b = (char)a; /*这需要类型转换*/ ...

C语言中,前后定义的变量的指针不同,相互之间无法进行赋值及运算吗?

不是这样的。C语言中的函数调用是单向的,仅仅是传递数值,所以在调用函数期间,函数内部变量所更改的直是无法传递回主调函数的。要把函数调用期间的变量值返回主调函数应该使用指针变量。下面是修改好的程序,在程序中,函数的形式参数采用指针变量,而函数调用时就把需要改变变量的地址传入到被调用函数中...

为什么不能将const指针赋给非const指针,而能反过来弄

防止你误操作嘛。。。const修饰的对象不能进行写操作,如果你可以直接赋值不就能修改那个对象的值了嘛。。。但是可以进行类型转换。。。const int i = 0;int* p = (int*)&amp;i;这样就没问题了,但是不推荐。理由同上。其实C的类型限制很薄弱的。。比如以下代码没有类型转换却也没有错误。const int ...

二维数组名不能赋值给二级指针- -

回答:你理解的是对的,但是错在,a是指向一维数组,p是指向int*,这两个不等价。a指向一维的int数组,内存大小为sizeof(int)*数组长度;而p只是指向一个int*类型指针,内存大小为4。指针指向的类型实际是不同的。这里你可能又有疑惑,为啥int b[10]一维数组就可以赋值给int* pb = b呢,这是...

c语言中指针变量为什么不能给int变量赋值

指针变量 里面是地址, int 变量里面是整数。整数和地址是2个不同的东西。地址是一种标识,而这种标识和整数没有关系。赋值一般发生在同一类型的变量之间,或者可以强制转换的变量类型之间。地址不能强制转换到整型。不能因为地址看起来像数字就认为它是整型。

二维数组名为什么不能直接赋值给二级指针。

。而二级指针在真正意义上也是一个指针,但它是一个指向指针的指针。在寻址时,拿整型数组举例,直接引用数组名,系统会在数组名指向的地址往后寻址2个字节得到一个整型数字。而引用二级指针时,系统会在指针指向的地址后寻址4个字节得到一个地址,所以两个不能相互赋值。纯手打,求采纳啊。

C语言问题

C语言是强类型的,不同类型不能相互赋值,其他三项都错了,,所以你应该明白了?再解释一下C为什么对:是这样的,数组的访问方式分为两种:指针访问和下标访问,简单的说一个一维数组a,a[1]和a+1的访问是一样的效果,但是计算机执行的时候,会先取出a数组的首地址,然后加偏移地址去访问内存,如果...

C语言里:为什么不能将int型变量直接赋值给指向int型变量的指针

因为指针里实际保存的是地址 比如 int a = 0;int *p ;p = &amp;a; //这是指向int型变量的指针,它保存的a这个变量所在的地址,比如,a保存在内存地址为0x00010011,那么p保存的就是0x00010011 所以不能直接把int型变量赋值给指针

不同类型的指针可以相互赋值吗 不同类型指针可以赋值吗C 指针之间相互的赋值 两个指针相互赋值 一个指针赋值给另一个指针 指针可以给指针赋值吗 结构体指针赋值给结构体指针 指向int的指针如何赋值 如何给指针指向的地址赋值
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
tclp301m手机存储为什么只有0.88gb TCL P301m的防盗密码忘了怎么办 TCL P301M有防盗锁怎么解啊 ...请问怎样解锁(开机后显示输入PIN码),我的手机是TCLP301M_百度... 你好我的P301M 手机上了PIN防盗锁,密码忘记了 怎么解锁啊 你好:TCL P301M 手势密码忘记了怎么能解掉呢?谢谢! 我觉得乔治中英文学校挺好的啊,不知道为什么网上总是有些差评呢?... 榴莲蜜是什么 榴莲菠萝蜜榴莲蜜的区别是什么 tclp301m手机怎么校准屏幕 oppo右上角水滴图标怎么取消 企业分为哪几种类型,不同类型有什么不同 不同类型的文件不能被相同的软件编辑对吗 怪味蚕豆的做法是什么 跳越的解释 二建《施工管理》施工进度计划的类型及其作用考点 半全自动钉机箱好学吗 半自动粘箱机怎么调压力大小 重机钉扣机怎么调4眼 脚踏钉箱机箱高和钉巨怎调 梦见腿上有好多血的预兆 梦见大腿破了血流很多的预兆 你知道哪些关于名人的故事呢? 小米12spro屏幕是什么屏幕 什么喜剧电影最搞笑? 身经百战的成语解释 任何事都有挫折希望你能挺过去 英语怎么说 楚乔传萧策母后为什么要杀萧策 清风吹杨柳下一句是什么? 动词形容词的指称化 词语造句:用指事造句(约30个) 衷组词和拼音和部首 利川市海拔800米以下在哪些镇 微信收款音箱播报器怎么购买 京东商城刘强东老家在哪里 梦见推理破案的预兆 上吐下泻现在还发烧,什么原因引起的 媳妇突然上吐下泻,有发烧,什么原因 我昨天上吐下泻,还有点发热37.4度,请大家看看我是怎么了 三者险怎么理解 怎么理解第三者责任险 梦见画花的预兆 梦见自己泡在水中的预兆 梦见泡在水中的预兆 隔墙有耳造句 dota LOL 王者荣耀三个游戏的玩家为什么经常互相看不起? 桃腮杏脸的解释 痯痯的解释 死而无怨的解释 新版本金鳞龙怎么玩 云顶之弈新版本枪手奥巴马怎么玩