C プログラミング言語では、*p はポインタに格納された値を表し、p は値のアドレスを表します。ポインタ。
const char* および char const* は、ポインタが定数文字を指すことができ、ポインタが指す文字の値は変更できないことを示します。ただし、ポインターは定数ではなく、別の定数文字を指すことができるため、その値を変更することができます。
char* const は、ポインタが文字を指すことができ、ポインタが指す文字の値を変更できることを意味します。ただし、ポインタは定数になっており、別の文字を指すことができないため、その値を変更することはできません。
const char* const は、ポインタが定数文字を指すことができ、ポインタが指す文字の値は変更できないことを意味します。また、ポインタは定数になっており、別の定数文字を指すことができないため、その値を変更することもできません。
名前付け構文の原則は右から左です。
// constant pointer to constant char const char * const // constant pointer to char char * const // pointer to constant char const char *
エラーのあるコードのコメントを解除し、エラーを表示します。
リアルタイム デモンストレーション
#include <stdio.h> int main() { //Example: char const* //Note: char const* is same as const char* const char p = 'A'; // q is a pointer to const char char const* q = &p; //Invalid asssignment // value of p cannot be changed // error: assignment of read-only location '*q' //*q = 'B'; const char r = 'C'; //q can point to another const char q = &r; printf("%c</p><p>", *q); //Example: char* const char u = 'D'; char * const t = &u; //You can change the value *t = 'E'; printf("%c", *t); // Invalid asssignment // t cannot be changed // error: assignment of read-only variable 't' //t = &r; //Example: char const* const char const* const s = &p; // Invalid asssignment // value of s cannot be changed // error: assignment of read-only location '*s' // *s = 'D'; // Invalid asssignment // s cannot be changed // error: assignment of read-only variable 's' // s = &r; return 0; }
C E
以上がC の const char*p、char*const p、および const char*const p の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。