c语言不兼容指针类型的赋值,关于C语言指针赋值的问题详解
一个代码:
代码如下:
#include
#include
#define uchar unsigned char
#define uint unsigned int
void display(uchar *p);
char h[4] = {'A','B','C',''};
char e[4] = {'E','F','L',''};
char l[4] = {'M','N','O',''};
char o[4] = {'X','Y','Z',''};
int main(void)
{
int i;
char c;
uint set[5];
set[0] = h;
set[1] = e;
set[2] = l;
set[3] = l;
set[4] = o;
while(1){
for (i = 0; i < 5; ++i){
display(set[i]);
printf("n");
sleep(1);
}
}
}
void display(uchar *p)
{
while(*p != ''){
printf("%c", *p);
printf("%c", *(p+1));
++p;
}
}
警报如下:
test.c:21: 警告: 赋值时将指针赋给整数,未作类型转换
test.c:22: 警告: 赋值时将指针赋给整数,未作类型转换
test.c:23: 警告: 赋值时将指针赋给整数,未作类型转换
test.c:24: 警告: 赋值时将指针赋给整数,未作类型转换
test.c:25: 警告: 赋值时将指针赋给整数,未作类型转换
test.c:29: 警告: 传递参数 1 (属于 ‘display')时将整数赋给指针,未作类型转换
其中21-25就是
set[0] = h;
set[1] = e;
set[2] = l;
set[3] = l;
set[4] = o;
29是
display(set[i])
虽然只是警报,并且在linux下面也可以运行的很好.但是既然警告了.还是值得讨论下.
待续~
关注中...
如果有哪位知道.可否回复告诉我.谢谢~
------------------------------------------------------------
关于这个问题,我问了寝室的小丁.经过他的修改.程序已经不报警告了.
代码如下:
#include
#include
#define uchar unsigned char
#define uint unsigned int
void display(uchar *p);
char h[4] = {'A','B','C',''};
char e[4] = {'E','F','L',''};
char l[4] = {'M','N','O',''};
char o[4] = {'X','Y','Z',''};
int main(void)
{
int i;
char c;
int set[5];
set[0] =(int) h;
set[1] =(int) e;
set[2] =(int) l;
set[3] =(int) l;
set[4] =(int) o;
while(1){
for (i = 0; i < 5; ++i){
display((uchar *)set[i]);
printf("n");
sleep(1);
}
}
}
void display(uchar *p)
{
while(*p != ''){
printf("%c", *p);
printf("%c", *(p+1));
++p;
}
}
在字模数组的首地址赋值方面用了强制转换为int.在函数调用方面.因为子函数中要求到输入为指针,所以在前面的调用时候,不能单纯的写set[i].而是传指针过去.(uchar *)的强制类型转换是为了配合(uchar *p).
-------------------------------------------
应该注意的2点是:
1.给指针只能传地址,不能传值.否则要做强制类型转换.
2.在做类型转换和赋值时候,应该注意赋值的类型匹配.
c语言不兼容指针类型的赋值,关于C语言指针赋值的问题详解相关推荐
- 设计模式-值类型与引用类型、深拷贝与浅拷贝、原型模式详解
一. 值类型和引用类型 1. 前言 (1). 分类 值类型包括:布尔类型.浮点类型(float.double.decimal.byte).字符类型(char).整型(int.long.short等). ...
- R语言rms包生存分析之限制性立方样条(RCS, Restricted cubic spline)分析详解实战:拟合连续性自变量和事件风险之间的关系:基于survival包lung数据
R语言rms包生存分析之限制性立方样条(RCS, Restricted cubic spline)分析详解实战:拟合连续性自变量和事件风险之间的关系:基于survival包lung数据 目录
- c语言常量的正确表示const,C语言中的const和free用法详解
注意:C语言中的const和C++中的const是有区别的,而且在使用VS编译测试的时候.如果是C的话,请一定要建立一个后缀为C的文件,不要是CPP的文件.因为,两个编译器会有差别的. 一.C语言中的 ...
- python标准类型内建模块_Python内建模块struct实例详解
本文研究的主要是Python内建模块struct的相关内容,具体如下. Python中变量的类型只有列表.元祖.字典.集合等高级抽象类型,并没有像c中定义了位.字节.整型等底层初级类型.因为Pytho ...
- pwd赋值给变量 shell_Shell脚本中的变量详解
一.Shell变量 变量:是shell传递数据的一种方式,用来代表每个取值的符号名. 当shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中. 二.变量设置规则: 变量名 ...
- c语言stl模板,c/c++开发分享C++ 标准模板库 STL 顺序容器详解
c++ 标准模板库 stl 顺序容器 容器 顺序性 重复性 支持迭代器 vector 动态数组 无序 可重复 随机访问迭代器 deque 双向队列 无序 可重复 随机访问迭代器 list 双向链表 无 ...
- go语言导入git包_使用go module导入本地包的方法教程详解
go module 是Go1.11版本之后官方推出的版本管理工具,并且从 Go1.13 版本开始, go module 将是Go语言默认的依赖管理工具.到今天 Go1.14 版本推出之后 Go mod ...
- c语言循环的三个要素是什么意思,什么是循环结构知识点详解
循环结构是程序设计中最能发挥计算机特长的程序结构.那么你对循环结构了解多少呢?以下是由小编整理关于什么是循环结构的内容,希望大家喜欢! 循环结构的简介 循环结构可以看成是一个条件判断语句和一个向回转向 ...
- decimal类型对象里面定义什么类型_MySQL中Decimal类型和Float Double的区别(详解)
MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形 ...
- 计算机网络进阶 ---- 网络类型 ---- 二层封装协议 ---- HDLC ---- PPP ---- pap认证 ---- chap认证 ---- 详解
一.网络类型: [1]点到点 (Peer to Peer – p2p) ---- 在一个网段中,只能部署两个节点: [2]MA(Multiple Access) ---- 多路访问 ---- 一个网段 ...
最新文章
- 初学Node(五)文件I/O
- [InnoDB系列] -- SHOW INNODB STATUS 探秘
- 全球与中国激光投影设备市场前景规划与发展战略建议报告2022-2028年版
- SAP采购订单抬头、行项目屏幕增强的两种方法
- 利用一个样本估计类别数据分布,9行代码提高少样本学习泛化能力
- LiveVideoStackCon讲师热身分享 ( 五 ) —— 建立中国自主视频技术生态
- 【开发工具之Spring Tool Suite】6、用Spring Tool Suite简化你的开发
- LeetCode 1985. 找出数组中的第 K 大整数(排序)
- 会议交流 | 2021年全国知识图谱与语义计算大会(CCKS 2021)征稿通知
- 标准WPS框架下的空间信息处理服务部署方法
- pb 如何导出csv_backtrader如何加载股票因子数据?以换手率、市盈率为例进行回测【附Python代码】
- mysql授权单个表权限
- react兼容safari9_解决create-react-app在ie中打开页面空白的兼容性问题
- 【Mysql】execute和executeUpdate
- LC-恢复二叉搜索树(JavaScript实现)
- 毕业四年间,一壶漂泊,歌者默然(转帖)
- 微信商城 开发的准备工作
- 如何实现excel的内容转成word报告模式
- vue导致页面白屏几种情况
- 2015年高教社杯全国大学生数学建模竞赛A题 “互联网+”时代的出租车资源配置
热门文章
- Android WebView加载H5音视频自动播放、关闭Activity停止播放
- ​九州一轨通过注册:计划募资6.57亿 京投公司为大股东
- 《游戏大师Chris Crawford谈互动叙事》一1.3 故事的本质
- xp计算机待机密码设置密码,XP系统电脑待机状态恢复后提示输入密码如何设置 XP系统电脑待机状态恢复后提示输入密码怎样设置...
- 一文带你了解python是什么?能做什么?为什么要学?
- 其中Android平板具有电容式触摸屏
- linux添加注释快捷键,VIM自定义快捷键和添加注释
- 华为:为什么美国更需要华为 而不是华为更需要美国
- 算法训练Day11|LeetCode 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
- 初等模型---光盘的数据容量