當前位置:首頁 » 編程語言 » c語言改變指針地址
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言改變指針地址

發布時間: 2022-06-28 10:56:54

『壹』 如何利用c語言指針修改任意內存地址的數據

在DOS時代可以
定義指針*p
更改p為你想要的內存地址。
(注意,其實大多時候這個地址都是偏移地址(見匯編))
你再改動*p值就能更改這個地址對應數據
如果你一定要方問任意內存地址
請用asm語句調用匯編語句,更改段地址
而在windows時代,訪問任意地址已經是不可以了,windows不訪問硬體地址(為了安全),比哪不能訪問顯卡地址。

『貳』 C語言:用指針修改地址什麼意思

就是申請一塊內存來為用戶使用,這個指針就是指向這片內存的

比如我要申請50個位元組的內存,那麼申請完了之後,這個指針就是指向這50個內存的

可以通過這個指針來訪問這一片內存中的內容

用完記得釋放點,不然很容易造成內存泄露

c中主要是通過malloc來申請,然後free來釋放

c++則是通過new和delete來操作

『叄』 c語言如何在局部函數里,改變指針的指向

1、如果函數參數直接傳遞的是指針類型,那麼在函數內改變指針指向,並不能影響函數外的指針實例。只有傳入指針的指針,才能改變指針的指向。
2、函數里的形參是一般變數,在函數裡面改變變數的值,不會改變主函數里實參的值。指針就是地址變數,在函數里改變地址變數的值時,不會改變主函數實參地址變數的值。只有在函數里改變指針所指向的變數的值時
主函數實參指針所指向的變數的值才會改變。

『肆』 C語言指針指定地址

首先,不能這樣做,你c語言操作的地址並不是真實的地址,是操作系統從內存的某一段虛擬給你的地址,每次都不一樣,每個程序所使用的內存互不幹擾。
第二,而你的程序退出後,所擁有的空間就被系統全部回收了。也就不存在了。否則,你c語言亂改一通,要是改到系統正在用的內存,系統不就出現異常了嗎。內存並不是由你管理的,而是操作系統管理的。

假設 a程序的 p指針,指向 0xaaa地址 ,你修改 b程序的 p指針,指向0xaaa,也是無法修改的,每個程序的內存都是系統虛擬的。保證程序可以安全穩定的執行。

『伍』 c語言如何通過指針來改變所指向的值

#include
void main()
{
int *p;
int q;
q=10;
p=&q;
printf("*p [%p]\n",p); //輸出的數指針p的地址
printf("*p [%d]\n",*p);//輸出的是指針指向地址的值
printf("*p+1 [%d]\n",*p+1); //所以+1就是11
*p=12; //這里相當於通過指針操作q
printf("*p [%d]\n",*p); //所以就12哦
}
*p [0012ff78]
*p [10]
*p+1 [11]
*p [12]
press any key to continue

『陸』 C語言如何使指針指向改變

你的zao 函數有問題,涉及到一個淺層拷貝的錯誤,因為zao函數的參數是字元串指針,所以你的臨時變數t不能只是簡單的交換地址,因為推出zao函數後,p、q退出棧,所以最終的效果是沒有變化,根據你的需要,做了如下程序,
void zao(char *p,char *q)
{
char *t = new char[100];
strcpy(t,p);
strcpy(p,q);
strcpy(q,t);
delete [] t;
}
這樣你的函數就可以運行了,

『柒』 c語言,指針變數中存放的地址可以改變嗎

應該選D

指針變數中存放的地址可以改變
而指針常量中存放的地址一般來說不能改變

『捌』 C語言這樣修改指針的地址為什麼不可以

99如果是地址的話,你指定他是否是合法的可引用的地址嗎?明顯是不能確定的,胡亂引用一個非法地址是很危險的。

另外你的輸出語句中輸出的是地址

『玖』 在C語言中的 交換指針地址問題

值傳遞在函數調用過程中,函數內部將參數拷貝一份,而並不改變元參數的值。而指針傳遞,才在函數內部改變傳入參數的值。如果你要傳入的參數是指針,可以改變的是指針指向的具體內容的值,而你如果要在函數內部改變指針的值,你需要傳入的是指針的地址,也就是指針的指針。將你的Change函數的參數改為(int **p, int **q), 然後再調用的時候改為change(&p, &q)即可。
希望對你又幫助。