c语言指针输出(C语言 用指针访问的方式 输入3个数,输出最小值 要分析过程,谢谢)

本文目录
C语言 用指针访问的方式 输入3个数,输出最小值 要分析过程,谢谢
全部手打啊,我现编的,有分的话给追加点最好了。
#include"stdio.h"
main()
{int i,a,*p; /*i为计数变量,数组a用来接收输入值,指针p用来访问*/
p=a; /*将数组a的首地址赋值给指针p*/
for(i=0;i《3;p++) /*循环三次 每次指针p的值增加一个int宽度 例:p从指向a*/
{
scanf("%d",p); /*输入数,指针p的值即为地址,所以不用加“&”*/
if(p》a) /*判断指针p当前指向的位置,如果已经超过第一个数则进行下面的判断*/
if(*p《a)
a保持为最小值*/
}
printf("%d",a的值是最小的*/
}
c语言 指针 取值
首先更正一下楼主错误,int 型的指针不可以用来获取char型的地址的,这样会产生错误,如果你的编译系统没有报错,实际上也有错误。
第二,字符串实际上就是等于字符数组。
ptr = &str;
printf("%d",ptr);
reptr = *(ptr);
printf("%c",reptr);
printf("\n");
这个可以输出的。就是C
ptr = &str;
printf("%c",*(ptr+1));
输出的是第4个字符‘/0’就是“空”,可能楼主由此判断无法输出
ptr = &str;
printf("%c",*(ptr+1));
就能输出C了
int *应该不可以,不过 int的话就可以
char str = "abc";
int ptr;
char reptr;
ptr =(int)&str;
printf("%d",(char *)ptr);
reptr = *((char *)ptr);
printf("%c",reptr);
printf("\n");
实际上利用强制类型转换,用int来存数据,意义上char 和int都是整形,所以可以一定程度上转换
C语言指针输出数据问题
这就是规则,格式符%s的含义就是:把对应的值看做一个地址,按字节读取,然后输出读取到的值所对应的ASCII码,直到碰到0为止
p1是个地址,假设p1的值是1000(也就是数组a的起始地址),那么从1000开始依次读取到HIKARI\0 然后输出
如果是*p1 那么*p1是’H’,’H’的ASCII值是72, 那么printf("%s",*p1); 就是从地址72开始读取,也就是printf("%s",72); 而地址72是不允许用户程序操作的,会出错。
再举个例子:
int a = 4407873;
printf("%s", &a);
会输出ABC 因为变量a内存空间的值按字节看就是’A’,’B’,’C’,’\0’

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30




