ポインタと定数
12399 ワード
ポインタと定数(c言語)は定数のポインタ を指す.定数ポインタ 「定数を指す定数ポインタ」を指すポインタ(二次ポインタ) .まとめ は定数のポインタ を指す.定数ポインタ 定数
定数は次のようになります.
または、
constキー修飾も使用できます
エラーが発生します
変数piは読み取り専用なので、ポインタで定数を指し、参照ポインタを解いて値を割り当てると、同じエラーが発生します.
定数へのポインタ
constポインタを変数に向けると
それでも禁止される
ただし、変数に値を付けることで*pの値を変更できます.
定数ポインタ
スムーズに出力できますが
これで間違いだ
「定数を指す定数ポインタ」へのポインタ(2次ポインタ)
スムーズな印刷
まとめ
const修飾変数は読み取り専用の特性を有する
定数へのポインタ
ポインタは、異なる定数ポインタを指すように変更できます.異なる変数を指すように変更できます.ポインタが指すデータをインデックスで読み取ることができます.ポインタが指すデータをリファレンスで変更することはできません.
定数ポインタ
非常に多くの定数を指すポインタ-ポインタ自体は修正できません-ポインタが指す値は定数を指す定数を修正することができます-ポインタ自体は修正できません-ポインタが指す値も修正できません
定数は次のようになります.
520,‘a’,3.14
または、
#define PRICE 520
#define A 'a'
#define PI 3.14
constキー修飾も使用できます
- const int price = 520;
- const char a = 'a';
- const float pi = 3.14;
// const
#include
int main(){
const float pi = 3.14;
printf("%f
",pi);
pi = 3.1415;
return 0;
}
エラーが発生します
error: assignment of read-only variable 'pi'
変数piは読み取り専用なので、ポインタで定数を指し、参照ポインタを解いて値を割り当てると、同じエラーが発生します.
定数へのポインタ
#include
int main(){
const int num = 520;
const int *p=#
*p = 1024;
}
error: assignment of read-only variable 'pi'
constポインタを変数に向けると
#include
int main(){
int num = 520;
//const int cnum = 888;
const int *pc = num;
printf("num:%d,%num%p
",num,&num);
printf("*pc:%d,pc:%p
",*pc,pc);
*pc = 1024;
}
それでも禁止される
[Error] assignment of read-only location '*pc'
ただし、変数に値を付けることで*pの値を変更できます.
定数ポインタ
#include
int main(){
int num = 520;
const int cnum = 888;
int * const p = #
*p = 1024;
printf("*p:%d
",*p);
}
スムーズに出力できますが
#include
int main(){
int num = 520;
const int cnum = 888;
int * const p = #
*p = 1024;
printf("*p:%d
",*p);
p = &cnum;
printf("*p:%d
",*p);
}
これで間違いだ
「定数を指す定数ポインタ」へのポインタ(2次ポインタ)
#include
int main(){
int num =520;
const int cnum = 888;
const int * const p = #
const int * const *pp = &p;
printf("pp:%p,&p:%p
",pp,&p);
printf("*pp:%p,p:%p,&num:%p
",*pp,p,&num);
printf("**p:%d,*p:%d,num:%d
",**pp,*p,num);
}
スムーズな印刷
まとめ
const修飾変数は読み取り専用の特性を有する
定数へのポインタ
ポインタは、異なる定数ポインタを指すように変更できます.異なる変数を指すように変更できます.ポインタが指すデータをインデックスで読み取ることができます.ポインタが指すデータをリファレンスで変更することはできません.
定数ポインタ
非常に多くの定数を指すポインタ-ポインタ自体は修正できません-ポインタが指す値は定数を指す定数を修正することができます-ポインタ自体は修正できません-ポインタが指す値も修正できません