程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> C語言基礎教程(二)數據類型、變量和運算符(11)

C語言基礎教程(二)數據類型、變量和運算符(11)

編輯:C語言基礎知識
對於指針變量的使用要特別注意。上例中兩個指針在說明前沒有初始化,因此這兩指針為隨機地址, 在小存儲模式下使用將會有破壞機器的危險。正確的使用辦法如下:
例如:
main()
{
int *i;
char *str;
i=(int*)malloc(sizeof(int));
i=420;
str=(char*)malloc(20);
str="Good, Answer!";
.
.
.
}
上例中, 函數(int*)malloc(sizeof(int))表示分配連續的sizeof(int)=2個字節的整型數存儲空間並返回其首地址。同樣(char*)malloc(20)表示分配連續20個字節的字符存儲空間並返回首地址(有關該函數以後再詳述)。由動態內存分配函數
malloc()分配了內存空間後, 這部分內存將專供指針變量使用。
如果要使i指向三個整型數, 則用下述方法。
例如:
#include<alloc.h>
main()
{
int *a;
a=(int*)malloc(3*sizeof(int));
*a=1234;
*(a+1)=4567;
*(a+2)=234;
.
.
.
}
*i=1234表示把1234存放到i指向的地址中去,但對於*(i+1)=4567,如果認為將4567存放到i指向的下一個字節中就錯了。Turbo C2.0中只要說明i為整型指針,
則 (i+1) 等價於 i+1*sizeof(int)
同樣 (i+2) 等價於 i+2*sizeof(int)
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved