Ⅰ c語言指針問題 如何用地址代碼直接給指針變數賦值
p
=
(int
*)1244992;
這樣就可以賦值了,不過你的程序可能會出錯的!
不應該直接使用地址。
Ⅱ C語言如何把指針指向的值賦值到變數上。。。
str1是個常量指針,不能對他進行賦值操作,
用也應該寫成p=str1;
另外初始化的話一般是char*
p=NULL;
或者char*
p;
p=NULL;
Ⅲ c語言里,如何把指針變數的地址賦給一個變數
指針變數的地址只能賦給指針變數。
#include "stdio.h"
int main()
{double pi=3.1415926,*p,**q;
p=π/*把double變數的地址賦給p */
q=&p; /*把指針變數p的地址賦給q */
printf(" pi=%.7lf *p=%.7lf **q=%.7lf ",pi,*p,**q); /*檢查賦值的效果 */
system("pause");
return 0;
}
Ⅳ C語言怎麼將變數裡面的值賦給指針
p=r1;就可以了
如果要讓p指向r1就p=&r1;
指針的寬度win32下是4位 dos下2位
也就是sizeof(p)=sizeof(int);
Ⅳ 在C語言中能否直接給指針指向的數據賦值為什麼
可以,但int *p;*p=7;這樣不行。
因為「能直接給指針指向的數據」賦值,而這里的p還沒有指向,所以不能賦值,這種指針有個名字叫「懸浮指針」,是不能給它賦值的。
這樣才可以:
int a,*p=&a;*p=7;
實際上就是使a等於了7。
(5)c語言指針賦值指針變數擴展閱讀:
注意事項
也可以使用賦值運算符為指針變數賦值,但要保證兩個指針變數的類型相同。
假設有如下變數定義:
int i,j,*p,*q;p=&i;q=&j;
這兩句將變數i和j的地址分別賦值給指針變數p和q;
執行了q=p後,執行該條語句,指針變數p和q都指向了同一個變數i,因此指針變數p和q中存放的都是變數i的地址&i。變數i此時並沒有初始化,只為其分配了內存單元。
注意理解:q=p;和*q=*p
前者為指針變數q賦值,即將指針變數p中存放的某個變數的地址賦值給q。顯然,賦值後,q和p就指向了同一個變數。
後者將p指向變數的賦值給q指向的變數。
例子:
p=&i;
q=&j;
i=2;
j=3;
Ⅵ C語言程序設計指針變數賦值
int
*p;中的「*」說明定義的一個變數p是指針類型的。
而
*p中的「*」是一種操作,是取值操作。即去指針指向的那個值。
*p可看作是一個整形的變數。a則可以看成是一個指針。
Ⅶ C語言指針變數的賦值問題。
第二個是對的,第一個是不對的,第一個應該改為
char *p;
p="smart";
這里的意思是將"smart"的首地址賦值給p
而第二個是他的定義時初始化形式
Ⅷ 關於c語言指針變數的賦值
p=&a; //p指向a
q=&b; //q指向b
w=q; //w與q相同,指向b
q=NULL; //q置空
*p=*w; //把w指向的對象的值賦給p指向的對象的值,就是把b賦給a
結果就是a=3
Ⅸ C語言中可以給指針變數賦值常數嗎
C語言中可以給指針變數賦值常數,賦值方法為:
1、首先打開Microsoft Visual C++軟體,單擊「文件」菜單->「新建」,新建一個文件,文件名後綴為.c。
Ⅹ C語言指針變數賦值0是什麼意思
其實這種現象在C語言中是有定義的。
值為0的整形常數表達式或強制轉換為void *類型的表達式可通過強制類型轉換、賦值或比較操作轉換為任意類型的指針。其結果將產生一個空指針。