在C语言中,“::”是什么? C语言中“?”和“:”是什么意思????

\u5728c\u8bed\u8a00\u4e2d?:\u662f\u4ec0\u4e48\u610f\u601d??

->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.
举个例子:
struct Data
{
int a,b,c;
}; /*定义结构体*/
struct Data * p;/*定义结构体指针*/
struct Data A = {1,2,3};/*声明变量A*/
int x;/*声明一个变量x*/
p = &A ; /*让p指向A*/
x = p->a;/*这句话的意思就是取出p所指向的结构体中包含的数据项a赋值给x*/
/*由于此时p指向A,因而 p->a == A.a,也就是1*/

对于一开始的问题 p = p->next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体指针,其定义格式应该是:
struct Data
{
int a;
struct Data * next;
};/*定义结构体*/
…………
main()
{
struct Data * p;/*声明指针变量p*/
……
p = p->next;/*将next中的值赋给p*/
}
链表指针是C语言的一个难点,但也是重点,学懂了非常有用。要仔细讲就必须先讲变量、指针。
什么是变量?所谓变量,不要浅显的认为会变得量就是变量。套用我们院长的问话:“教室变不变?”变,因为每天有不同的人在里面上课,但又不变,因为教室始终在那,没有变大或变小。这就是变量:有一个不变的地址和一块可变的存储空间。正常情况下,我们只看到变量这个房间里面的东西,也就是其内容,但不会关注变量的地址,但是C语言的指针,就是这个房间的地址。我们声明变量就相当于盖了间房子存放东西,我们可以直接观看房子里的东西,而声明指针,就是相当于获得了一个定位器,当用指针指向某个变量时,就是用指针给变量定位,以后我们就可以用指针找到他所“跟踪”的变量并可以获得里面的内容。
那结构体呢?结构体就相当于是有好几个房子组成的别墅,几个房子绑定在一起使用。假设现在有很多这种别墅分布在一个大迷宫里,每间别墅里都有一间房子。里面放了另一个别墅的位置信息,现在你手拿定位器找到了第一栋别墅,从里面得到了你想要的东西(链表的数据部分),然后把下一栋别墅的位置计入你的定位器(p = p->next),再走向下一栋别墅……如此走下去,知道走到某地下一栋别墅信息没有了(p->next == NULL),你的旅行结束。这就是链表一次遍历的过程。现在你能明白 p=p->next的含义了吧!
写了这么多。希望你能明白。
如果想学好c和C++,链表和指针必须熟练掌握!

::是作用域解析运算符,也就是他主要用于解析一个变量的作用域,比如对于struct st;中的静态成员a的访问,可以这样使用st::a=1;表示变量a是来自struct结构st中的变量。对于全局变量可以使用无名的::运算符来表示这个变量是全局变量。比如
int i; //全局变量
void main()
{int i=1; //同名局部变量
::i=2; //为全局变量i赋值。
}

是全局引用的意思

好像是C++的吧



  • c璇█鐨?銆:鏄粈涔绗﹀彿?
    绛旓細C璇█閲岄潰?銆侊細鏄笁鏈ㄨ繍绠楃锛屽叾涓紵鐢ㄦ潵鍒ゆ柇鏉′欢鐨勭湡鍋囷紝锛氱敤鏉ユ牴鎹垽鏂粨鏋滃喅瀹氬彇鍊笺傚(a<b)?a:b"鏄竴涓"鏉′欢琛ㄨ揪寮"锛屽鏋渁
  • C璇█涓 :: 鏄粈涔鎰忔
    绛旓細C璇█涓病鏈 :: 杩愮畻绗︼紝:: 鏄疌++涓殑鍩熻繍绠楃
  • c璇█绗﹀彿::鏄粈涔鎰忔
    绛旓細杩欎釜绗﹀彿鍦–璇█閲屾槸娌℃湁鐨勶紝搴旇鏄疌++涓殑绗﹀彿锛岀敤鍦ㄥ畾涔夊嚱鏁扮殑鏃跺欙紝鍦ㄥ嚱鏁板悕鍓嶉潰鍔犵被鍚嶅拰鈥滐細锛氣濓紝鏍煎紡濡備笅锛氱被鍚嶏細锛氬嚱鏁板悕锛屾剰鎬濇槸璇ュ嚱鏁版槸灞炰簬杩欎釜绫荤殑銆
  • 鍦–璇█涓,鈥::鈥鏄粈涔?
    绛旓細->鏄竴涓暣浣擄紝瀹冩槸鐢ㄤ簬鎸囧悜缁撴瀯浣撱丆++涓殑class绛夊惈鏈夊瓙鏁版嵁鐨勬寚閽堢敤鏉ュ彇瀛愭暟鎹傛崲绉嶈娉曪紝濡傛灉鎴戜滑鍦–璇█涓瀹氫箟浜嗕竴涓粨鏋勪綋锛岀劧鍚庣敵鏄庝竴涓寚閽堟寚鍚戣繖涓粨鏋勪綋锛岄偅涔堟垜浠鐢ㄦ寚閽堝彇鍑虹粨鏋勪綋涓殑鏁版嵁锛屽氨瑕佺敤鍒扳->鈥.涓句釜渚嬪瓙锛歴truct Data { int a,b,c;}; /*瀹氫箟缁撴瀯浣*/ struct Data...
  • C璇█涓::鍜**鏈浠涔鍖哄埆?
    绛旓細琛ㄧず浣滅敤鍩燂紝鍜屾墍灞炲叧绯銆::鏄繍绠楃涓瓑绾ф渶楂樼殑锛屽畠鍒嗕负涓夌:1銆乬lobal scope(鍏ㄥ眬浣滅敤鍩熺锛夛紝鐢ㄦ硶锛::name)2銆乧lass scope(绫讳綔鐢ㄥ煙绗︼級锛岀敤娉(class::name)3銆乶amespace scope(鍛藉悕绌洪棿浣滅敤鍩熺锛夛紝鐢ㄦ硶(namespace::name)浠栦滑閮芥槸宸﹀叧鑱旓紙left-associativity)浠栦滑鐨勪綔鐢ㄩ兘鏄负浜嗘洿鏄庣‘鐨勮皟鐢...
  • C璇█鍜孋++涓殑::鍜->鏄粈涔鎰忔?
    绛旓細->鏄澶存搷浣滅锛岃璁″畠鐨勭洰鐨勬槸涓轰簡绠鍖栬緭鍏ワ紝浠ュ強澧炲己绋嬪簭鐨勫彲璇绘х殑 ->鐨勫姛鑳界浉褰撲簬瑙e紩鐢ㄦ搷浣滅*鍜屾垚鍛樿皟鐢ㄦ搷浣滅.鐨勭粍鍚堜綋 渚嬪锛歝lass C { static int a;} 璁块棶a灏卞彲浠ヤ娇鐢C::a鏉ヨ闂紝琛ㄦ槑杩欎釜鍙橀噺a鍏锋湁绫籆鐨勪綔鐢ㄥ煙銆傚畠鍦ㄨ绫诲唴鍙銆備簡瑙f洿澶氾紝閭d箞namespace灏辨槸涓緢濂界殑渚嬪瓙銆傚彟澶栥俢la...
  • c璇█涓鏉′欢杩愮畻绗︹:鈥濈殑鎰忔鏄粈涔?
    绛旓細1銆佹剰鎬濇槸锛氭槸鏉′欢杩愮畻绗︼紝鏉′欢杩愮畻绗︽槸C璇█涓鍞竴鐨勪笁鐩繍绠楃锛屽氨鏄浠栨湁涓変釜杩愮畻瀵硅薄銆2銆佹潯浠惰繍绠楃鐨勫舰寮忔槸鈥滐紵锛氣濈敱浠栨瀯鎴愮殑琛ㄨ揪寮忕О涓烘潯浠惰〃杈惧紡銆傚舰寮忎负锛氳〃杈惧紡1锛熻〃杈惧紡2锛氳〃杈惧紡3
  • C璇█涓 :: 鏄粈涔鎰忔
    绛旓細琛ㄧずCJXJphoneApp() 鏄被CJXJphoneApp鐨勪竴涓嚱鏁帮紝褰揅JXJphoneApp()鍦ㄧ被澶栭儴瀹氫箟鏃讹紝浣跨敤CJXJphoneApp::锛琛ㄧず灞炰簬CJXJphoneApp锛屽鏋滃嚱鏁板湪绫诲唴閮ㄥ畾涔夋椂涓嶄娇鐢::鍙枫
  • C璇█涓鈥?鈥濆拰鈥:鈥鏄粈涔鎰忔?
    绛旓細鈥?鈥鍦–璇█涓琛ㄧず鐤戦棶銆傗滐細鈥濆湪C璇█涓〃绀哄垽鏂殑缁撴灉閫夋嫨銆傘愪緥瀛愩(a>b)?瑙i噴锛氬垽鏂〃杈惧紡鏄惁鑳藉閫氳繃锛屽鏋滆兘閫氳繃锛岄偅涔堣鏄庢墠鑳借繘琛屼箣鍚庣殑鎿嶄綔锛屽鏋滀笉鑳介氳繃锛屽氨閫夋嫨鍚庝竴绉嶇粨鏋溿(a>b)?y:n 瑙i噴锛氬鏋淎澶т簬B锛岄偅涔堥夋嫨Y鐨勭粨鏋滐紝濡傛灉A灏忎簬B锛岄偅涔堥夋嫨N鐨勭粨鏋溿
  • ::鍦╟璇█涓槸浠涔鎰忔?
    绛旓細c璇█涓涓鑸笉鐢ㄨ繖涓::涓鑸鍦╟++浣跨敤銆锛氾細,琛ㄧず鍏ㄥ眬浣滅敤鍩熴
  • 扩展阅读:c语言 视频 ... c语言一个&和两个& ... 全国语言翻译器 ... c语言库函数大全 ... c 入门教程 ... c c++ 区别 ... 算 机 释义 ... c语言修仙讲的什么 ... com与cn域名的差别 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网