本文目錄一覽:
C語言二維指針 有一個二維指針**a,如何給它賦初值。
不建議直接給指針賦值,除非是NULL;
二維指針也是指針,如你所寫,a只不過是指向另一個指針的指針,歸根結底還是指針,不因為它是多維的就會有什麼變化;
例如:
int** a = NULL; //賦初值為空,這樣做絕對是好習慣
或者:
int a;
int* b = a;
int** c = b;
再或者就是個二維數組:
int a[ 10 ][ 10 ];
int** b = a; //其實a就是一個二維指針
c語言文件指針賦初值
main函數傳遞給fjudichw函數(這函數名稱真彆扭)的函數指針,運算結果其值不會自動帶回。
請複習函數參數傳遞方式的章節。
c語言中定義指針變量時,賦值和賦初值有什麼區別?
賦初值,也就是初始化,只能在定義的時候操作,形式為
type var_name = init_value;
其中=init_value就是賦初值了。
賦值,是在定義後,改變變量的值,形式為
var_name = value;
二者的效果是類似的,都是把變量值改變。但在C語言中,編譯出的代碼有所區別。其中賦初值的效率會更高。
C語言指針賦初值問題
int
*p1=0,*p2=0,*p3=0;這裡賦的是地址,指針都指向地址為0的空間就是空指針,沒有實體存在,所以後便全錯了。
#include
#include
void
main()
{
int
*p1=(int
*)malloc(sizeof(int)),*p2=(int
*)malloc(sizeof(int)),*p3=(int
*)malloc(sizeof(int)),*c;
*p1=0;
*p2=0;
*p3=0;
printf(“請輸入任意三個整數(中間以空格隔開:)”);
scanf(“%d
%d
%d”,p1,p2,p3);
if(*p1*p2)
{c=p1;p1=p2;p2=c;}
if(*p2*p3)
{c=p2;p2=p3;p3=c;}
if(*p1*p2)
{c=p1;p1=p2;p2=c;}
printf(“%d,%d,%d\n”,*p1,*p2,*p3);
}
一樓說的是對的,回答問題是並行的,早知道他答了,我就不回答了,還有你的數值交換還存在很大的問題。你自己看看吧。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/307156.html