1樓:匿名使用者
b是一個指標,*b是指標指向的位置。
b並未指向任何位置,但是你卻為他賦值,當然出錯。
char *b ;
新增如下**:char tmp;
b = &tmp;
*b = *a;
即可。這時候給*b賦值,就是給tmp賦值。
2樓:匿名使用者
char str=;
char *a,*b;
a=str;
b=a;
printf("%s %s",a,b);
這樣就對了。。。
3樓:嘉藍影月
#include
int main()
; 習慣上一般去掉大括號的,無所謂的char *a,*b;
a=str;
b=a; 給指標賦值應該是b=a;
printf("%s %s\n",a,b); //這裡應該是個地址,輸出的是地址不是值}
4樓:匿名使用者
a,b都是指標變數,儲存的是一個地址,必須要賦值,而 語句*b=*a是把a所指儲存單元的內容(即'm')賦值給b所指記憶體單元,而b沒有賦初值,是一個不確定的記憶體單元,這是非法的。
char str="my";
char *a,*b;
a=str;
b=a;
printf("%s %s",a,b);
這樣a,b都指向陣列str的首地址。另外%s是輸出字串,對應的必須是指標
5樓:匿名使用者
a = str; // 是對的,這是指標賦值。
*b = *a; //b沒有存放字元的空間,那麼*a的內容'm'放哪兒呢?
printf("%s %s",*a,*b); // 既然b是野指標,這裡輸出其內容就會出問題的,防病毒程式有可能以木馬侵擾的方式提示你清楚之。
6樓:匿名使用者
把*b = *a;改為
b=a;
下面程式的執行結果是,C語言 下面程式的執行結果是()
答案選d。strcat a,b 結果 a 為 ablmnp,b 為 lmnp。while a i 0 b i a i 一開始 i 等於 0,但在 while 的迴圈條件中將 i 自增,所以第一次進入迴圈體時 i 等於 1,於是就有了最終結果 lblmnp。c語言 下面程式的執行結果是 因為i 3 進...
C語言程式編寫沒錯誤但是不能執行
跟include之間別留空格,還有你建檔案的時候是否檢測成功,以及你使用的vc軟體是否正常。字尾名掉了或者寫錯了 你的檔名後面要加.c或者.cpp,注意c前面有個點 不過你得把你的電腦上的文明副檔名顯示出來這樣做才有效 或者新建c檔案 命名時一定要帶上.c 問下你有沒有建c檔案?為什麼我的c語言程式...
請解釋一下c語言下面的語句是什麼意思
宣告一個函式指標x,x指向一個返回值為int,形參為unsigned,unsigned,unsigned的函式 另外static修飾使得函式指標不能被外部檔案呼叫 c語言中,解釋一下a 什麼意思 這個來叫做 自增語句,a 是先賦值 源然後自身加 1 a 也是一個道理,就是使a 先增加 1在賦值相當於...