當前位置:首頁 » 編程語言 » c語言指針移動

c語言指針移動

發布時間: 2022-05-26 04:11:49

1. c語言中文件指針怎樣向前移動一個位元組

你是用C標准I/O庫函數的話,
(1)文件定位:
文件定位指讀取或設置文件當前讀寫點,所有的通過文件指針讀寫數據的函數,都是從文件的當前讀寫點讀寫數據的。
常用的函數有:
#include
<stdio.h>
int
fseek(FILE
*stream,
long
offset,
int
whence);
fseek
設置當前讀寫點到
offset
處,
whence
可以是
SEEK_SET,SEEK_CUR,SEEK_END,這些值決定是
從文件頭、當前點和文件尾計算偏移量
offset.
你可以定義一個文件指針FILE
*fp,當你打開一個文件時,文件指針指向開頭,
你要指到多少個位元組,只要控制偏移量就好,例如
相對當前位置往後移動一個位元組:fseek(fp,1,SEEK_CUR);中間的值就是偏移量。
如果你要往前移動一個位元組,直接改為負值就可以:fseek(fp,-1,SEEK_CUR)

2. c語言,關於指針內數據的移動

你不能這么做。buf+11的確是buf[11]的地址,這沒錯,但因為buf是數組buf[1024]的起始地址,這是一個常量,buf不能更改,你不能給它賦值,即:你不能直接buf = buf+11;

有更好的辦法就是內存復制。你可以使用memmove函數,它包含在<string.h>頭文件中,其定義原型如下:

void*memmove(void*dest,constvoid*src,size_tcount);

它的作用是由src所指內存區域復制count個位元組到dest所指內存區域。具體到你的需求,這個函數應該這樣調用:

memmove(buf,buf+11,1024-11);

其中,1024 - 11指的是從第11個元素開始到第1024個元素結束,這之間一共有1024 - 11個元素,由於是char型的,每個元素佔1個位元組,所以就是1024 - 11個位元組。

這樣調用的目的就是把 buf[11]開始之後的數據往前移到buf[0]開始的位置,這要比用for循環一個位元組一個位元組地移動要高效得多。

3. c語言中關於指針移動問題

指針類型所佔內存空間在32位系統下為4個位元組。是指:指針本身占的長度。
移動指針的時候。。。。。。。。。。。。。指的是:指針所指的類型所佔的長度啊。

你可以用sizeof()看一下 所佔內存大小。

比如 char *p; int *s;
那麼:
sizeof(p)=4,sizeof(*p)=1
sizeof(s)=4,sizeof(*s)=4
注意,結果依據編譯器而定。TC一般是2位元組。。VC++是4位元組。

4. c語言中移動指針*p++。它移動了多少啊.一個位元組嗎

不一定,要看這個指針類型的基類型,即:
如果是char
*p,那麼p++就移動一個位元組
如果是int
*p,那麼p++就移動sizeof(int)個位元組。
總之一句話,對於指針p而言,p++移動的位元組數是sizeof(*p)

5. C語言文件指針自動移動

文件內部指針不是就是用打開文件函數所賦值的那個指針,
打開函數的指針,是文件流的指針,指向這個文件流。
內部指針指向當前操作在文件流中的位置
fp是文件指針的話
可以使用ftell(fp)來獲取當前內部指針位置。

也有fseek函數來設置內部指針位置,這些函數調用的時候,必須使用文件流的 指針。文件流的指針始終是這個fp,但內部指針的位置是一直在移動的,沒有一個可見的內部指針的變數來讓你操作,只對文件指針操作就可以了。

讀寫文件的時候內部指針自動移動,是C的IO系統管理來實現的,這個文件流其實仍然是IO,跟鍵盤滑鼠都是由IO系統管理來做的,不用去關心底層的具體操作,只要知道讀寫操作以後內部指針變了,就行。

6. c語言指針移動問題

backward++;
forward--;
用物理的角度看,限定其中一個為
參照物
,那麼另一個的速度就是2。
擦肩而過
你懂的
吧.....
每次加2可能跳過了你的那個相等的機會。
backward
<=
forward
比較可靠。

7. 怎樣才算是移動指針 C語言

指針的值變化的時候就叫移動指針比如:
int arr[4]={1,2,3,4};
int *p;
p=arr;
p++; //p指向下一個元素了,這個就叫移動指針

8. 在C語言編程下怎麼控制windows系統指針的移動

使用用SendInput函數可以控制指針的移動。第二個參數是一個INPUT結構體的數組,第一個參數代表這個數組有幾個元素,最後一個參數代表這個數組中每一個元素是幾個位元組。參考以下代碼。

#include <windows.h>
#pragma comment(lib, "user32.lib")
int main() {
INPUT mouseInput;
ZeroMemory(&mouseInput, sizeof mouseInput);
mouseInput.type = INPUT_MOUSE;
mouseInput.mi.dx = 10;
mouseInput.mi.dy = 10;
mouseInput.mi.dwFlags = MOUSEEVENTF_MOVE;
SendInput(1, &mouseInput, sizeof(mouseInput));
return 0;
}

9. c語言怎樣移動文件指針到制定位置啊

參數為下列其中一種:

SEEK_SET:從距文件開頭 offset 位移量為新的讀寫位置;

SEEK_CUR:以目前的讀寫位置往後增加 offset 個位移量;

SEEK_END:將讀寫位置指向文件尾後再增加 offset 個位移量。

10. C語言指針移動的問題,程序結果是53,怎麼得來的

x[1][1]表示的是二維數組第二行第二列的數據,記住數組的下標是從0開始的。
第二行第二列是5所以&x[1][1]代表其地址,for循環里i可以取0和2,那麼p[0]就是5,p[2]就是5的後兩個3。

熱點內容
eclipse查看jar包源碼 發布:2025-02-12 23:59:35 瀏覽:972
電腦主機伺服器維修 發布:2025-02-12 23:59:26 瀏覽:301
sqlserver標識 發布:2025-02-12 23:51:33 瀏覽:462
安卓怎麼玩地牢獵人 發布:2025-02-12 23:50:25 瀏覽:943
思鄉腳本 發布:2025-02-12 23:43:32 瀏覽:439
java的job 發布:2025-02-12 23:38:43 瀏覽:892
我的世界伺服器授權指令 發布:2025-02-12 23:30:13 瀏覽:596
電腦伺服器號在哪裡找 發布:2025-02-12 23:22:29 瀏覽:12
linux查看系統是32位 發布:2025-02-12 23:17:29 瀏覽:989
從資料庫中隨機取資料庫數據 發布:2025-02-12 23:17:25 瀏覽:878