当前位置:首页 » 编程语言 » c语言获取指针内容
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言获取指针内容

发布时间: 2022-10-18 21:07:34

A. c语言指针读取问题

如果一行就一个像m.jpg,可以用下面程序处理;如果含多个,那你把格式显示一下。最好是个例子
#include <stdio.h>
#include <stdlib.h>
#include <string.h>//增加头文件
#define MAXLINE 100
int main()
{

FILE *fp;
char arr[MAXLINE+1];

if ((fp = fopen ("MYFILE", "r")) == NULL)
{
perror ("File open error!\n");
exit (1);
}
while ((fgets (arr, MAXLINE, fp)) != NULL)
{
if(strstr(arr,".jpg")!=NULL)
puts(arr);
//fputs (arr, stdout);//arr中存放的是字符串,例如“m.jpg”,"n.jpg","t.jpg","new.txt"等,我想让后缀为.jpg的文件名字符串才输出到stdout来,请问怎么改?????
}
return 0;
}

B. c语言如何输出指针所指向的值

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

C. C语言指针/引用/取值

指针是一个存储计算机内存地址的变量。从指针指向的内存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址,例如int、long和double。指针也可以是void类型、NULL指针和未初始化指针。

根据出现的位置不同,操作符  *  既可以用来声明一个指针变量,也可以用作指针的取值。当用在声明一个变量时,*表示这里声明了一个指针。其它情况用到*表示指针的取值。

&是地址操作符,用来引用一个内存地址。通过在变量名字前使用&操作符,我们可以得到该变量的内存地址。

// 声明一个int指针

int*ptr;

// 声明一个int值

int  val = 1;

// 为指针分配一个int值的引用

ptr = &val;

// 对指针进行取值,打印存储在指针地址中的内容

int deref = *ptr;

printf("%d\n", deref);

第2行,我们通过*操作符声明了一个int指针。接着我们声明了一个int变量并赋值为1。然后我们用int变量的地址初始化我们的int指针。接下来对int指针取值,用变量的内存地址初始化int指针。最终,我们打印输出变量值,内容为1。

第6行的&val是一个引用。在val变量声明并初始化内存之后,通过在变量名之前使用地址操作符&我们可以直接引用变量的内存地址。

第8行,我们再一次使用*操作符来对该指针取值,可直接获得指针指向的内存地址中的数据。由于指针声明的类型是int,所以取到的值是指针指向的内存地址存储的int值。

说穿了,指针就是地址吧,这里可以把指针、引用和值的关系类比为信封、邮箱地址和房子。一个指针就好像是一个信封,我们可以在上面填写邮寄地址。一个引用(地址)就像是一个邮件地址,它是实际的地址。取值就像是地址对应的房子。我们可以把信封上的地址擦掉,写上另外一个我们想要的地址,但这个行为对房子没有任何影响。

D. c语言 指针 取值

首先更正一下楼主错误,int 型的指针不可以用来获取char型的地址的,这样会产生错误,如果你的编译系统没有报错,实际上也有错误。

第二,字符串实际上就是等于字符数组。
ptr = &str[2];
printf("%d",ptr);
reptr = *(ptr);
printf("%c",reptr);

printf("\n");
这个可以输出的。就是C
ptr = &str[2];
printf("%c",*(ptr+1));
输出的是第4个字符‘/0’就是“空”,可能楼主由此判断无法输出
ptr = &str[1];
printf("%c",*(ptr+1));
就能输出C了

int *应该不可以,不过 int的话就可以
char str[4] = "abc";
int ptr;
char reptr;

ptr =(int)&str[0];
printf("%d",(char *)ptr);
reptr = *((char *)ptr);
printf("%c",reptr);

printf("\n");

实际上利用强制类型转换,用int来存数据,意义上char 和int都是整形,所以可以一定程度上转换

E. 关于C指针 如何获取指针指向的变量的值

因为指针变量b尚未赋值,就访问它指向的内容,所以指令*b=3.14;是失败的。

给指针赋值语句是这样的:
b=&a; // 也就是你程序中注释掉的那行
给指针指向的内容赋值语句是这样的:
*b=3.14; // 前提是b必须先赋值
读取指针指向的内容的语句是这样的:
x=*b; // 其中x是一个float类型的变量,并且前提是b必须先赋值

F. C语言,指针的指针获取和传递数据。

一般来说,这种的,并不是只读取一个结构 而是文件中有一系列的不定个数的数据。

全读回来 给主函数用

这样 主函数中 定义

structstudent*stu;

调用

inttotal=ReadStudentInfo("path/file.bin",&stu);


然后 在ReadStudentInfo函数中

FILE*fp=fopen(filename,"rb");
//根据文件大小获取总的数据个数
intsize;
fseek(fp,0,SEEK_END);
size=ftell(fp);
fseek(fp,0,SEEK_SET);

inttotal=size/sizeof(structstudent);

//然后申请内存
*pStudent=(structstudent*)malloc(sizeof(structstudent)*tatol);
//读数据
fread(*pStudent,sizeof(structstudent),total,fp);
fclose(fp);
returntotal;

到主函数 就可以通过

stu[0] 到stu[total -1]来访问读到的数据了。

G. C语言 在字符串指针中读取特定内容

代码如下:

#include<stdio.h>
#include<string.h>

intmain()
{
char*text="";
char*s="content";
char*p;

//使用strstr函数查找字符串content的位置
p=strstr(text,s);

if(p!=NULL){

//跳过content使p指向content后面的内容。
p+=strlen(s);

//如果需要跳过content后面的那个空格p再加1
p++;

printf("%s ",p);
}

return0;
}

运行结果: