21行滿分程式碼:1039 到底買不買 (20分)
阿新 • • 發佈:2021-01-02
技術標籤:C語言學習
1. 指標是什麼?
#include<stdio.h>
/*指標是變數的地址*/
void main(){
int num=77;
printf("變數地址:%p\n",&num);
int *p=#
printf("指標佔用記憶體:%d\n",sizeof(p));
printf("p = %p\n",p); //p是變數地址,和&i一樣
printf("*p = %d\n" ,*p); //*p是變數值,和i一樣
}
小結一下:
1.指標就是變數地址;
2.使用方法:
定義:ELemType *PointerName
取地址:PointerName = &VariableName
取值:VariableName = *PinterName
格式化輸出:%p
3.可以參見:變數作用域與傳值呼叫檢視使用地址傳遞對變數值進行修改(這個線上性順序表有很大作用)
2.指標的運算:
#include<stdio.h>
#include<stdlib.h> //malloc 在這個庫
void main(){
int i[10];
char *c;
c=(char *)malloc(sizeof(char)*10);
double d[10];
printf("整型陣列:%p %p %p\n",i,i+1,i+2);
printf("字串:%p %p %p\n",c,c+1,c+2);
printf("浮點陣列:%p %p %p\n",d,d+1,d+2);
}
結果:
整型陣列:0x7ffc00322fe0 0x7ffc00322fe4 0x7ffc00322fe8
字串:0x2100010 0x2100011 0x2100012
浮點陣列:0x7ffc00322f90 0x7ffc00322f98 0x7ffc00322fa0
所以對地址的運算是按照資料型別佔用空間推進的
可以通過地址運算對陣列、字串或者順序表(後面寫結構體指標)來進行操作