2020年6月16日 星期二

C語言筆記5-指標1090616

1、指標宣告,是存變數的記憶體位置的變數

https://programming.im.ncnu.edu.tw/Chapter9.htm

int b;
//跟記憶體要一塊區域稱為b,這塊區域專門放int型變數值
b = 2;
//把2這個值給變數b
int* pointer;
//跟記憶體要一塊區域稱為pointer,這塊區域專門放指向int型變數的指標(地址)
pointer = &b;
//把變數b的地址值給pointer,注意不能寫成 pointer = b;

*pointer = 100
這裡的「*」,和宣告指標變數的 int* pointer 的意義不太一樣。反而是和「&」相對應——「&」代表「取出地址」、「*」代表「取出內容」


//指標宣告與存取 
#include <stdio.h> 
int main(void) {
    int b = 2;
    int* pointer = &b;

    printf("變數 b 的值:%d\n", b);
    printf("變數 b 的地址16進制:%p\n", &b);
    printf("變數 b 的地址10進制:%d\n", &b);
    printf("pointer 的值16進制:%p\n", pointer);
    printf("pointer 的值10進制:%d\n", pointer);
    printf("\n"); //換行
    
    *pointer = 100;      //此*等同&,是取值 
    printf("*pointer 的值:%d\n", *pointer);
    printf("變數 b 的值:%d\n", b);
    printf("變數 b 的地址16進制:%p\n", &b);
    printf("變數 b 的地址10進制:%d\n", &b);
    printf("pointer 的值16進制:%p\n", pointer);
    printf("pointer 的值10進制:%d\n", pointer);
 
printf("\n");
printf("變數 pointer 的地址:%p\n", &pointer);
  printf("變數 pointer 的地址:%d\n", &pointer);
    return 0;

}
測試結果~
變數 b 的值:2
變數 b 的地址16進制:000000000062FE1C
變數 b 的地址10進制:6487580
pointer 的值16進制:000000000062FE1C
pointer 的值10進制:6487580

*pointer 的值:100

變數 b 的值:100
變數 b 的地址16進制:000000000062FE1C
變數 b 的地址10進制:6487580
pointer 的值16進制:000000000062FE1C
pointer 的值10進制:6487580

變數 pointer 的地址:000000000062FE10


變數 pointer 的地址:6487568

      程式例題~G:\我的雲端硬碟\c語言練習題\1資料型態宣告\10指標宣告存取
//指標宣告存取
#include <stdio.h>
int main(void) {
int a=7,res=0;
int *addra=&a;  //指標addr放a的記憶體位置
res=*addra;   //res 放addr位置的內容
printf("a的內容=%d\t",a);
    printf("a的記憶體位置=%d\t",addra);
    printf("res的內容=%d\t",res);
    printf("res的內容=%d\n",*addra);
    *addra=10;           //由記憶體位置改變數a內容
    printf("a的內容=%d\t",a);  //a=10
    printf("a的記憶體位置=%d\t",addra);
    printf("res的內容=%d\t",res);     //res未更改記憶體位置的新內容 7
    printf("res的內容=%d\n",*addra);  //記憶體位置=10
    res=*addra;  //res更改記憶體位置的新內容 10
    printf("res的內容=%d\n",*addra);
}
測試結果~
a的內容=7       a的記憶體位置=6487564   res的內容=7     res的內容=7
a的內容=10      a的記憶體位置=6487564   res的內容=7     res的內容=10
res的內容=10

https://kopu.chat/2017/05/15/c%E8%AA%9E%E8%A8%80-%E8%B6%85%E5%A5%BD%E6%87%82%E7%9A%84%E6%8C%87%E6%A8%99%EF%BC%8C%E5%88%9D%E5%AD%B8%E8%80%85%E8%AB%8B%E9%80%B2%EF%BD%9E/



沒有留言:

張貼留言

Chrome教學5-建立桌面捷徑1110217

 建立桌面捷徑