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;
}