2015-06-18 86 views
1

我試圖建立一個程序,通過指針指針修改數組的元素。我將它加載到調試器中,我發現指針的值發生了變化,但由於某些原因,這不會影響數組中的元素。我的指針語法錯了嗎?我是否將指針重新指派到其他地方?通過指針修改數組元素指針

#include <stdio.h> 
 
#include <stdlib.h> 
 

 
#define SIZE 6 
 

 
/* 
 
* 
 
*/ 
 

 

 
void change (char **x); 
 

 
int main() { 
 
    
 
    char arra[] = "Back"; 
 
    char *c = arra; 
 
    
 
    change(&c); 
 
    
 
    int i; 
 
    printf("%c", arra[0]); 
 
    } 
 
    
 
    
 

 
void change (char **x) { 
 
    
 
    *x = "H"; 
 
    
 
}

回答

2

無需使用指針在這種情況下指針。只需使用指向char的指針即可。

void change (char *x); 

與函數體稱其爲

change(c); 

void change (char *x) { 
    *x = 'H'; 
} 
+0

乾杯!工作出色:) –

3
*x = "H"; 

應該

**x = 'H'; 

你試圖修改第一個字符和字符必須在單引號內。

這裏不需要指針指針。你可以通過在函數參數中傳遞的指針傳遞給指針,如@haccks

+0

從您的聲明''和'意味着'這就是爲什麼'? –

+1

@EugeniuRosca是 – Gopi

+1

這個怎麼運作? – haccks