看板 C_and_CPP 關於我們 聯絡資訊
#include<iostream> using namespace std; #include<string.h> #include<stdlib.h> #include<climits> int main() { char *NBA[3]={"wade","james","bosh"}; cout<<sizeof(*(NBA+1)); system("pause"); } 想問一下*(NBA+1)內容不是應該是james嗎? 它的大小應該是五個字元,但為什麼sizeof出來是四呢?看來我指標要搞懂還有一段距離 ,能請各位大大幫我解惑嗎? sizeof(NBA) 出來是12,是代表用到三個指標嘛?一個指標4Byte,不知道這樣想有 沒錯! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.214.36
stupid0319:strlen(*(NBA+1)); 11/12 15:29
stupid0319:NBA放了三個指向字串的指標,一個指標4Byte(x86) 11/12 15:32
stupid0319:sizeof(*(NBA+1)) = sizeof(char*) = 4 11/12 15:33
xatier:建議翻一下 K&R2 第五章後半部的說明 11/12 16:50
legnaleurc:好可怕的 header 用法 11/12 18:56
loveme00835:I go crazy because of you, 陣列好好用 [] 會很難嗎 11/12 19:30
loveflames:原po這樣搞會犯第4誡 11/12 19:36
purpose:*(NBA+1) 等於 NBA[1],指標字串的元素當然是指標大小4 11/12 19:51
purpose:指標陣列的元素的大小,當然是跟指標大小一樣是4 (剛打錯) 11/12 19:52