1. c语言如果指针被向后移动了n次,如何在移动到头
如果是循环链表(这个在数据结构中有介绍)的话,可以一直移动,判断是否为链表头即可。
如果只是普通链表的话,就无法移动到头了。
建议,普通链表,在移动之前,先定义另外一个变量(比如p)指向头,然后再移动p,保持原链表头(head)指针不变,这样只要进行p=head,就可以再次让p指向头。
2. C语言指针自增后怎么还原到首地址啊,求高手解~
int *origin = null;//保存最初的位置
int *p = .....//给要操作的指针赋初值,如int *p = a;
origin = p;//保存
p++/p--之类的你想做的操作
要使用p的首地址,使用origin即可
3. C语言对文件进行处理时,如何让文件指针移动到所在行的开头以及下一行的开头
fscanf("%s\n",string1);
就到下一行了。
到本行开头自己研究,一回事。
4. C语言里开辟内存空间后如何让指针返回内存首地址
你没在最后添加结束符'\0',修改如下
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *p1,*p2,*p3;
char *p=(char*)malloc(1000000);
p1=p;
p2=p;
p3=p2;
gets(p1);
while (*p1!='\0')
{
if(*p1!=' ')
{
*p2=*p1;
p2++;
}
p1++;
}
*p2='\0'; //加上这一句,添加字符串结束符
puts(p3);
return 0;
}
————————————————————————-
这种输出又不是没用过,没问题的,可以把代码贴上来,我试试
————————————————————————————
输出时用p3啊,
puts(p3);
或用printf也可以
——————————————————————————
汗,你声明一个char *p3,处理前让p3=p2不就行了
5. 如下C语言的指针初始化是怎么初始化的呢
例如 int *pt 然后 *pt=5 这样说是不能对未初始化的指针取值!!还有 如果有指针 char* i; 不初始化直接用 *i="Hello"; 可以吗?
int *pt;/* pt是一个指向整数的指针,未初始化时,存储该指针的地址&pt是随机的,可以用printf("%p",pt)来验证。 就是说,该指针可能指向任意地方,包括系统使用的内存区,虽说这不是你需要的。当*pt = 5时,就有 可能造成无法预料的结果。*/你可以在定义指针的时候直接初始化,语句如下int *pt = 5;同样,也可以这样这样写:char *i = "Hello";
6. C中如何使文件指针重置
//SEEK_SET :文件首
SEEK_CUR :当前位置
SEEK_END :文件末尾
fseek(a,(b-1)*sizeof(struct student),SEEK_SET);
这是函数定义
7. c语言中读文本文档如何让文件指针换到下行首
文本文档的换行标识符为'
', 当读完
后,指针就移动到了下行的行首。
以此为思路可以得到代码:
intmoveToNextLine(FILE*fp)
{
intc;
if(fp==NULL)return-1;//文件指针非法
while(1)
{
c=fgetc(fp);
if(c==EOF)returnEOF;//到文件尾,不存在下一行
if(c==' ')break;//读到需要的换行符。
}
return0;
}
在读取中,FILE*指针会自动完成移位,所以不需要显式的返回指针。
8. c语言如何跳回前面的某一个点重新从那里开始运行
用goto语句。
#include<stdio.h>
voidmain()
{
inta;
begin:scanf("%d",&a);//goto语句的标号begin
if(a<0||a>9)
gotobegin;//如果用户输入的数不在0~9之间,则重新输入
eles
printf("%d ",a);//如果用户输入的数在0~9之间,则输出该数
}
(8)c语言怎么让指针回到最开始扩展阅读:
goto的基本语法
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 1;
while(1)
{
printf("在while(1)里 ");
while(i++)
{
printf("i = %d ",i);
if(i > 3)
{
goto TiaoChu;
}
}
}
TiaoChu:
printf("程序结束 ");
return 0;
}
运行结果:
标号位置
在while(1)里
2
3
4
程序结束
9. C语言中什么叫指针复位
指针所指的地址,经过使用后改变到新的地址了,,,,,那么,让指针重新指向开始的地址,是复位
~~~~~
10. C语言中 怎么能让光标回到上一行
turboc的
#include <stdio.h>
#include <conio.h>
int main()
{
int x, y;
gotoxy(5, 5);
printf("position: 5, 5");
x = wherex();
y = wherey();
getch();
gotoxy(x, y - 1);
getch();
}
控制台的
#include <windows.h>
#include <stdio.h>
#include <conio.h>
void gotoxy(HANDLE hOut, int x, int y);
void getxy(HANDLE hOut, int &x, int &y);
int main()
{
int x, y;
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
gotoxy(hOut, 5, 5);
printf("position: 5, 5");
getxy(hOut, x, y);
getch();
gotoxy(hOut, x, y - 1);
getch();
CloseHandle(hOut);
}
void gotoxy(HANDLE hOut, int x, int y)
{
COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(hOut, pos);
}
void getxy(HANDLE hOut, int &x, int &y)
{
CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
GetConsoleScreenBufferInfo(hOut, &screen_buffer_info);
x = screen_buffer_info.dwCursorPosition.X;
y = screen_buffer_info.dwCursorPosition.Y;
}