参照 (計算機科学)
しかし、C言語は「弱い型システム」を採用していることから、型変換(あるデータ型の値を明示的に他のデータ型の値に変換すること)によって不正なポインタを容易に生成することができるため、誤った解釈は依然として生じうる。Cの後継とも言えるC++は、新たな型変換演算子の導入、標準ライブラリでのスマートポインタ導入などによりポインタの型安全性を強化しようと試みているが、Cとの互換性維持のため意図的にこれらの安全機構を出し抜くことができる能力を依然として有している。なお、C++には、さらに型としても「参照」というものがある(#C++の「参照」を参照)。
ガベージコレクションをサポートするような多くの高水準言語では、reference などと称される不透明な参照を採用している。これらの参照はC言語のポインタのようなデータ型であるが、参照を生のアドレス値に変換したり、逆にアドレス値から参照を生成したり、といった危険な変換ができないという点でC言語よりずっと安全になっている。このように「管理された」言語 (managed language) では、参照は実際には指すべきデータへのポインタへのポインタになっていることが多い。C/C++から見れば、これらの言語は二段階ポインタを参照に使っていることになる(典型的な実装としては)。ガベージコレクタだけが不透明性を生む中間のポインタに直接アクセスすることができる。一般に参照同士の演算もサポートされていない。