c语言中指针赋值问题,关于C语言指针赋值的问题「建议收藏」

c语言中指针赋值问题,关于C语言指针赋值的问题「建议收藏」为方便各位小伙伴更好的学习C语言,武林技术小编为此给大家整理了一批资料,供大家交流学习,下面就跟随武林技术频道的编辑一起来先来看看关于C语言指针赋值的问题。一个代码:复制代码代码如下:#include#include#defineucharunsignedchar#defineuintunsignedintvoiddisplay(uchar*p);charh[4]={‘A’…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

为方便各位小伙伴更好的学习C语言,武林技术小编为此给大家整理了一批资料,供大家交流学习,下面就跟随武林技术频道的编辑一起来先来看看关于C语言指针赋值的问题。

一个代码:

复制代码 代码如下:

#include#include#define uchar unsigned char

#define uint unsigned int

void display(uchar *p);

char h[4] = {‘A’,’B’,’C’,’/0′};

char e[4] = {‘E’,’F’,’L’,’/0′};

char l[4] = {‘M’,’N’,’O’,’/0′};

char o[4] = {‘X’,’Y’,’Z’,’/0′};

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 != ‘/0’){

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’,’/0′};

char e[4] = {‘E’,’F’,’L’,’/0′};

char l[4] = {‘M’,’N’,’O’,’/0′};

char o[4] = {‘X’,’Y’,’Z’,’/0′};

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 != ‘/0’){

printf(“%c”, *p);

printf(“%c”, *(p+1));

++p;

}

}

在字模数组的首地址赋值方面用了强制转换为int.在函数调用方面.因为子函数中要求到输入为指针,所以在前面的调用时候,不能单纯的写set[i].而是传指针过去.(uchar *)的强制类型转换是为了配合(uchar *p).

——————————————-

应该注意的2点是:

1.给指针只能传地址,不能传值.否则要做强制类型转换.

2.在做类型转换和赋值时候,应该注意赋值的类型匹配.

以上就是关于C语言指针赋值的问题,想必都已有了一定的了解,更多关于C语言的内容请继续关注武林技术频道。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157736.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python怎么调用模块_切换模块的功能和特点

    python怎么调用模块_切换模块的功能和特点简介Python的PyYAML模块是Python的YAML解析器和生成器。安装简单安装pipinstallpyyaml从源码安装下载源码包PyYAML-3.13.tar.gz并解压,在命令行下切换到解压后的包目录内并执行如下命令:pythonsetup.pyinstall如果想使用比纯Python版本更快的LibYAML绑定,需要先下载并安装LibYAML,然后在安装…

    2022年4月19日
    42
  • Java单元测试工具:JUnit4(一)——概述及简单例子「建议收藏」

    Java单元测试工具:JUnit4(一)——概述及简单例子「建议收藏」1.概述1.1什么是JUnit①JUnit是用于编写可复用测试集的简单框架,是xUnit的一个子集。xUnit是一套基于测试驱动开发的测试框架,有PythonUnit、CppUnit、JUnit等。②Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。③多数Java的开发环境都已经集成了JUnit作为单元测试的工具,比如Eclipse。

    2022年7月8日
    18
  • 网络流量分析netflow

    网络流量分析netflow前言  随着宽带互联网在中国的迅速发展,全国各大电信运营商的网络规模都在不断扩张,网络结构日渐复杂,网络业务日趋丰富,网络流量高速增长。电信运营商需要通过可靠、有效的网络业务流量监测系统对其网络以及网络所承载的各类业务进行及时、准确的流量和流向分析,进而挖掘网络资源潜力,控制网络互联成本,并为网络规划、优化调整和业务发展提供基础依据。  目前国内电信运营商已建的网络管理系统所能实现

    2022年4月29日
    59
  • python中int是什么类型

    python中int是什么类型python中的基本数据类型1:虽然python中的变量不需要声明,但使用时必须赋值整形变量浮点型变量字符型2:可以一个给多个变量赋值,也可以多个给多个变量赋值3:python3中有6个标准数据类型

    2022年7月5日
    29
  • Web后端开发入门(2)

    Web后端开发入门(2)搭建JavaWeb应用开发环境–Tomcat服务器下载与安装首先,搜索Tomcat,找到如图网址点击,进入Tomcat官网在最左边一栏,有个Download,找到最新版Tomcat9,点击下拉,找到如上图所示位置,Core核心:zip版,tar.gz版(Linux系统),32位版,64位版,安装版。前几个版本都不需要安装,如果你需要安装就下载最后一个,然后选中自己要下载的版本,下载。安装…

    2022年6月22日
    27
  • pycharm 2021永久激活码破解方法

    pycharm 2021永久激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    158

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号