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)
上一篇 2022年7月27日 下午1:00
下一篇 2022年7月27日 下午1:36


相关推荐

  • PhpStorm 2021.1激活码 有效期2021 3月破解方法

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

    2022年3月14日
    43
  • ArrayList底层实现原理「建议收藏」

    ArrayList底层实现原理「建议收藏」ArrayList简介ArrayList是我们开发中非常常用的数据存储容器之一,其底层是数组实现的,我们可以在集合中存储任意类型的数据,ArrayList是线程不安全的,非常适合用于对元素进行查找,效率非常高。源码分析创建了一个大小为0的数组,在后面会用到。声明了一个数组。ArrayList的无参构造方法,将前面声明创建的大小为0的数组赋给elementData数组。这是ArrayList的有参构造方法,传入一个int类型的变量,相当于我们在使用arrayList的时候指定list的大小

    2022年8月8日
    4
  • 启动hive出错,提示没有权限

    启动hive出错,提示没有权限

    2022年3月5日
    39
  • ArcGIS地图打印

    ArcGIS地图打印个人学习笔记 仅供学习交流 参考书籍 ArcGIS 从 0 到 1 文章目录布局编辑插入 Excel 的方法插入图片固定比例尺打印导出地图局部打印批量打印标准分幅打印一张图多比例尺打印布局编辑 ArcGIS 的地图打印是在布局视图中完成的 所以地图打印前一定要切换到布局视图 切换方法 点击左下角的按钮 右键数据框可以设置数据框的属性 大小和位置等等 在主菜单 文件 下拉菜单下 选择 页面和打印设置 可以更改打印方式 插入 Excel 的方法 打开 excel 文档 选择需要打印的表格数据

    2026年3月19日
    3
  • 战争即将结束,还有罕见的大利好!

    战争即将结束,还有罕见的大利好!

    2026年3月12日
    1
  • ExpandableListView实例(一)_数据库增删改查处理和listitem点击长按处理

    ExpandableListView实例(一)_数据库增删改查处理和listitem点击长按处理本例说明:1.实例中表现层与数据处理层分开,代码可复用性强,如果能看懂代码对算法会有提高.2.组和子条目上”点击”事件处理,能够区分操作的是组还是子条目,并且得到组和子条目的内容.3.组和子条目上”长按”事件处理,能够区分组和子条目,并且得到组和子条目的内容.4.自定义条目样式,灵活与数据库中字段绑定.5.实现对DB的增删改查,并且操作后自动刷新.6.使用数据库处理框架AH

    2022年6月23日
    31

发表回复

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

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